在C#中,如果第一次测试可以停止其他测试或者所有测试都执行了吗?

时间:2012-01-04 11:54:06

标签: c# asp.net-mvc

我有以下内容:

@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#

中做到这一点

3 个答案:

答案 0 :(得分:1)

如果您只使用&而不是&&,则不会使第二个布尔表达式的评估短路。在它的当前形式中,它评估两个表达式,然后确定它们是否都是真的。

答案 1 :(得分:0)

使用&&代替&启用短路操作。 &是二进制文件和。

答案 2 :(得分:0)

您需要使用&& - 因为代码不符合您的想法! &按位AND 运算符,当然不是您想要的。

&&是布尔AND,也是失败时的快捷方式。