我有以下内容:
@if (@Model.Meta.LinkKey.IsNotNullOrEmptyOrZeros() & !@Model.Meta.LinkKey.EndsWith("-"))
这是ASP.NET MVC所以我只能使用一个if(),并且所有内容都必须适合它。如果值为null,则第一个测试工作正常,但下一个测试失败并显示一条消息:
Object reference not set to an instance of an object.
如果第一个条件显示该值为空,有没有办法让C#不再进行测试?我似乎记得这在C中是可能的,但我不知道如何在C#
中做到这一点答案 0 :(得分:1)
如果您只使用&
而不是&&
,则不会使第二个布尔表达式的评估短路。在它的当前形式中,它评估两个表达式,然后确定它们是否都是真的。
答案 1 :(得分:0)
使用&&
代替&
启用短路操作。 &
是二进制文件和。
答案 2 :(得分:0)
您需要使用&&
- 因为代码不符合您的想法! &
是按位AND 运算符,当然不是您想要的。
&&
是布尔AND,也是失败时的快捷方式。