NET问答:null != variable 和 variable != null 到底有什么区别?
咨詢區(qū)
mr_georg:
在 C# 中,下面的兩種寫法在執(zhí)行效率上是否存在差異?
if?(null?!=?variable)?... if?(variable?!=?null)?...因為最近我經(jīng)常看到這種非自然的寫法 null != variable,這讓我感到很好奇,因為我覺得第二種寫法更符合人的閱讀習慣。
如果兩者沒有差異的話?為什么會存在這種非常規(guī)的寫法?僅僅是因為個人愛好嗎?
回答區(qū)
Jon Skeet:
這是 C 語言的遺留問題,如果你的編譯器檔次不高或者你沒有開啟高級別的告警配置,那下面的代碼不會出現(xiàn)什么任何警告信息,雖然這段代碼也是正確的代碼。
//?Probably?wrong if?(x?=?5)其實你真正想表達的意思是這樣:
if?(x?==?5)為了避免這種不小心造成的低級錯誤,所以就有了變通的寫法。
if?(5?==?x)回過頭來說,如果在 C# 中還是這么玩的話,那就有點聰明反被聰明誤了,你應該寫出更可讀性的代碼,因為 C# 中的 if 必須是 boolean 表達式。
Lasse V. Karlsen:
我猜這是一位 C 轉(zhuǎn)過去的程序員,在 C 語言中,可以寫出下面的語句。
int?i?=?0; if?(i?=?1) {... }上面這種寫法的意思是:將 1 賦值給 i,然后返回變量i,又因為在 if 表達式條件中,這里的 1 會被當作 true 處理,嚴謹一點說:其實這是一個bug。
在 C# 中還這么寫,編譯器肯定放不過,所以本質(zhì)上來說兩者沒有區(qū)別。
點評區(qū)
C 中可以這么寫我不知道,但 Javascript 中經(jīng)常見到,沒啥好說的,學習了!
總結(jié)
以上是生活随笔為你收集整理的NET问答:null != variable 和 variable != null 到底有什么区别?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【荐】牛逼的WPF动画库:XamlFla
- 下一篇: 使用微信云托管快速部署一个.Net Co