2008年7月28日 星期一

[程式][藝術] 用 xor 來做逆運算

其實程式真的很像藝術,看看下面的程式碼:


bool check;


// 第一種

if (check)

{

check = false;

}

else

{

check = true;

}


// 第二種

check = (check) ? false : true;

// 第三種

check = !check;


// 第四種

check ^= true;


一樣的句子,透過 xor (^=) 變的多麼簡單,也許上面的式子感覺不太出來,那看看下面的,因為取屬性的寫法變的比較長了,自然 code 也變長了,當然還可能會更長
但一樣透過 xor 就變的很簡潔,像藝術作品一般

// 第一種

if (this.checkBox1.Checked)

{

this.checkBox1.Checked = false;

}

else

{

this.checkBox1.Checked = true;

}


// 第二種

this.checkBox1.Checked = (this.checkBox1.Checked) ? false : true;

// 第三種

this.checkBox1.Checked = !this.checkBox1.Checked;


// 第四種

this.checkBox1.Checked ^= true;

0 回應:

 
TEMPLATE HACKS AND TWEAKS BY [ METAMUSE ] BLACKCAT 1.1