2013-06-23 2 views
1

Все еще заключает контракты на обучение. Когда я создаю небольшой тест, я получаю следующее сообщение от проверки: CodeContracts: Вызов этого метода всегда приведет к ошибке. Если это требуется, рассмотрите возможность добавления Contract.Requires (false) для его документирования.CodeContracts: вызов этого метода всегда приведет к ошибке

Я не понимаю, что он пытается сказать мне. Как я могу добавить Contract.Requires (false) в этот пример, чтобы предупреждение не отображалось?

Это код. Обратите внимание, что это надуманный пример исключительно для обучения CC.

void DoSomething(object test) { 
     Contract.Requires(test != null); 
     MessageBox.Show(test.ToString()); 
    } 


    void InvokeDoSomething() { 
     DoSomething(null); 

    } 

ответ

0

Код Контракты обнаружили, что вы

  1. Требовать параметр метода никогда не будет нулевой
  2. Буквально называют его с нулем

CC в основном говорит вам, что ваш код всегда будет терпеть неудачу. Контракт кажется прекрасным, но ваш звонок плохой. Разумеется, решение состоит в том, чтобы не добавлять Contract.Requires (false), но не вызывать метод с нулевым значением.

Смежные вопросы