CodeContracts:调用此方法将始终导致错误

时间:2013-06-23 15:39:09

标签: code-contracts

仍在学习代码合同。当我创建一个小测试时,我从检查器中收到以下消息:CodeContracts:调用此方法将始终导致错误。如果需要,请考虑添加Contract.Requires(false)来记录它。

我不明白它试图告诉我什么。如何向此示例添加Contract.Requires(false),以便不显示警告?

这是代码。请注意,这是一个专门用于学习CC的人为例子。

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


    void InvokeDoSomething() {
        DoSomething(null);

    }

1 个答案:

答案 0 :(得分:0)

代码合同发现你

  1. 要求方法的参数永远不为空
  2. 直接用null
  3. 调用它

    CC基本上告诉你,你的代码总是会失败。合同似乎很好,但你的电话很糟糕。解决方案当然不是添加Contract.Requires(false),而是不使用null调用方法。