我一直在用 Java(主要)和 .Net 编码一段时间。
我发现||
.Net中的逻辑运算||
符与Java中的运算符的结果不同。
让我们看看下面的 Java 代码:
Object obj = null;
if(obj == null || obj.toString().isEmpty()){
System.out.println("Object is null");
}
上面代码的结果将是:
对象为空
原因是因为obj == null
istrue
并且第二个表达式没有被评估。如果是的话,我会收到一个java.lang.NullPointerException
.
如果我使用单或 ( |
) 我也会收到一个NullPointerException
(两者都被评估)。
我的问题如下:
如果代码是 C#,我将始终得到 ObjectReferenceNotSet 等异常,因为 obj 值为 null 并且始终评估第二个表达式(无论运算符如何),这意味着 C# 中的结果与 Java 中的结果不同。如果我想更改 C# 代码以使其正常工作,我必须创建两个 if 语句。
有没有更简单的方法可以在 C# 中做到这一点以类似于 Java?(如果有 2 个表达式,将其保持在一个中)
谢谢你。