私はしばらくの間Java(主に)と.Netでコーディングしてきました。
私が見つけたのは||
、.Netの論理演算子は、結果として||
Javaの演算子とは異なるということです。
次のJavaコードを見てみましょう。
Object obj = null;
if(obj == null || obj.toString().isEmpty()){
System.out.println("Object is null");
}
上記のコードの結果は次のようになります。
オブジェクトがnullです
その理由はobj == null
、true
2番目の式が評価されなかったためです。もしそうなら、私はを受け取ったでしょうjava.lang.NullPointerException
。
また、シングルまたは()を使用した場合は、 (両方が評価されます)|
も受け取ります。NullPointerException
私の質問は次のとおりです。
コードがC#の場合、obj値がnullであり、2番目の式が常に評価されるため(演算子に関係なく)、常にObjectReferenceNotSetなどの例外が発生します。つまり、C#とJavaでは結果が異なります。正しく機能するようにC#コードを変更する場合は、2つのifステートメントを作成する必要があります。
これをC#でJavaに似せる簡単な方法はありませんか?(2つの式がある場合は1つにまとめてください)
ありがとうございました。