Как применить проверку на ноль? - PullRequest
14 голосов
/ 26 февраля 2010

Я работаю над большим проектом, в котором, даже с 10 тысячами автоматических тестов и 100% охватом кода, мы получаем смешное количество ошибок. Около 95% ошибок, которые мы получаем, являются NullReferenceExceptions.

Есть ли способ принудительной проверки нуля во время компиляции?

Кроме этого, есть ли какой-нибудь способ автоматически применить нулевую проверку в модульных тестах без необходимости писать тесты для нулевых случаев самостоятельно?

Ответы [ 13 ]

0 голосов
/ 26 февраля 2010

Может быть, вам стоит взглянуть на пользовательские политики проверки кода для TFS

http://weblogs.asp.net/uruit/archive/2009/03/17/writing-custom-rules-for-tfs-2008-code-analysis-check-in-policy.aspx

0 голосов
/ 26 февраля 2010

Вы не можете иметь нулевую проверку во время компиляции, так как во время компиляции объекты являются только типами, и только во время выполнения типы конвертируются в экземпляры, которые имеют конкретное значение ... здесь null.

0 голосов
/ 26 февраля 2010

ни то, ни другое невозможно с C # 3. Вы должны использовать что-то вроде Spec # ... я думаю, что C # 4 может иметь что-то встроенное в него, но я не уверен в этом.

spec #: http://research.microsoft.com/en-us/projects/specsharp

...