1

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

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

这是代码。请注意,这是一个人为设计的示例,仅用于学习 CC。

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


    void InvokeDoSomething() {
        DoSomething(null);

    }
4

1 回答 1

0

Code Contracts 发现你

  1. 要求方法的参数永远不会为空
  2. 字面上用 null 调用它

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

于 2014-06-18T14:47:41.433 回答