我一直在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