今天看到一位同事這么寫(xiě)代碼:
if(t!=null)
{
? ? ? if(t.IsAlive)
? ? ? {
? ? ? ? t.Abort();
? ? ? }
}
我當(dāng)時(shí)想昌执,要是我就這樣寫(xiě):
if(t!=null && t.IsAlive)
{
? ? ?t.Abort();
}
看起來(lái)少寫(xiě)了三行苛败。不過(guò)我馬上又想到,他之所有這么寫(xiě)波势,是因?yàn)樗恢?&& 的使用方法:
if(條件1 && 條件2)
{
}
如果條件1不成立,那么不對(duì)條件2進(jìn)行判斷,直接跳出大括號(hào)账锹;
如果條件1成立朵逝,則對(duì)條件2進(jìn)行判斷蔚袍;
由此看來(lái),要想像我這么寫(xiě)配名,還得多學(xué)一點(diǎn)語(yǔ)法上的知識(shí)啤咽。這是第一個(gè)缺點(diǎn)晋辆。
第二個(gè)缺點(diǎn),不懂這個(gè)知識(shí)的人宇整,可能會(huì)認(rèn)為:條件1不成立栈拖,還要對(duì)條件2判斷一下。
那像這樣的情況if(t!=null && t.Alive)如果t==null没陡,那么t.Alive豈不是要報(bào)錯(cuò)了涩哟?
其實(shí),像我這位同事的寫(xiě)法盼玄,簡(jiǎn)單易懂贴彼,不會(huì)讓人產(chǎn)生歧義,而且還少學(xué)了無(wú)用的知識(shí)埃儿。
類(lèi)似的還有器仗,可以用 ?i=i+1; 來(lái)代替 i++童番;
之所以會(huì)出現(xiàn)++符號(hào)是因?yàn)橐郧暗挠?jì)算機(jī)內(nèi)存不夠精钮,
而現(xiàn)在計(jì)算機(jī)的內(nèi)存夠的很。
我根本沒(méi)必要知道++是什么意思剃斧,對(duì)吧轨香?
哈哈,我感覺(jué)我自己就像孔乙己幼东,多學(xué)了幾個(gè)茴香豆的“茴”的寫(xiě)法臂容。