Внутри C #, могу ли я первый тест остановить другие тесты или все тесты выполняются? - PullRequest
0 голосов
/ 04 января 2012

У меня есть следующее:

@if (@Model.Meta.LinkKey.IsNotNullOrEmptyOrZeros() & !@Model.Meta.LinkKey.EndsWith("-"))

Это ASP.NET MVC, поэтому я могу использовать только один if () , и все должно соответствовать этому. Первый тест работает нормально, если значение равно нулю, но затем следующий тест завершается неудачно с сообщением:

Object reference not set to an instance of an object.

Есть ли способ заставить C # больше не проводить тестирование, если первое условие показывает, что значение равно нулю? Кажется, я помню, что это было возможно в C, но я не уверен, как это сделать в C #

Ответы [ 3 ]

1 голос
/ 04 января 2012

Если вы просто используете &, а не &&, вы не закорачиваете оценку второго логического выражения. В своей текущей форме он оценивает оба выражения, а затем определяет, истинны ли они оба.

0 голосов
/ 04 января 2012

Вам нужно использовать && - так как код не соответствует вашим ожиданиям! & - это побитовый оператор AND , и, конечно, это не то, что вам нужно.

&& - логическое И, а также ярлыки при сбое.

0 голосов
/ 04 января 2012

Используйте && вместо & для включения операций короткого замыкания.& является двоичным и.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...