我一直在Java(Mainly)和.Net中編寫代碼。||(或)Java中的邏輯運算符與.Net
我發現的是,.Net中的||
邏輯運算符與Java中的||
運算符的結果不同。
讓我們看看下面的Java代碼:
Object obj = null;
if(obj == null || obj.toString().isEmpty()){
System.out.println("Object is null");
}
代碼的結果將是:
對象爲空
的原因是因爲obj == null
是true
而第二個表達式沒有被評估。如果是的話,我會收到一個java.lang.NullPointerException
。
如果我使用單個或(|
),我也會收到一個NullPointerException
(兩者都評估)。
我的問題是:
如果代碼是C#,我總是會得到ObjectReferenceNotSet等異常,因爲obj的值是零和第二個表達式始終計算(不考慮運營商的) ,這意味着C#中的結果與Java中的結果不同。 如果我想改變C#代碼正常工作,我必須創建兩個if語句。
在C#中有沒有更簡單的方法來做到這一點類似於Java? (如果帶有2個表達式,請將它保留爲一個)
謝謝。
我不得不downvote你,對不起:(但你的問題是完全錯誤的,我不明白爲什麼它接收多個選票! – fearofawhackplanet 2010-11-29 13:15:06
我同意。我的其他位置搞錯了。我要投票關閉這個問題。因爲我無法刪除它。 – Koekiebox 2010-11-29 13:22:39
你有沒有測試過這個? – Pedro 2010-11-29 14:03:50