gpt4 book ai didi

c#-4.0 - 合约类应该是一个抽象类

转载 作者:行者123 更新时间:2023-12-04 10:45:05 24 4
gpt4 key购买 nike

以下代码给了我警告 Contract class 'FooContracts' should be an abstract class .从我在线阅读的所有示例(例如 http://www.infoq.com/articles/code-contracts-csharp )中,这应该有效(大概没有编译器警告)。

[ContractClass(typeof(FooContracts))]
public interface IFoo {
void Bar(string foo);
}

[ContractClassFor(typeof(IFoo))]
internal sealed class FooContracts : IFoo {
void IFoo.Bar(string foo) {
Contract.Requires(foo != null);
}
}

我在 Visual Studio 2010 中,在 Code Contracts 中有以下设置项目属性部分:
  • 执行运行时契约(Contract)检查(设置为 Full)
  • 执行静态合约检查(在 Static Checking 下)
  • 后台签到

  • 我还定义了 CONTRACTS_FULL使 ReSharper 关闭的编译符号。

    我是否缺少一些可以在没有警告的情况下进行编译的内容?

    最佳答案

    code contracts manual的第2.8节特别指出它应该是一个抽象类:

    The tools expect that the contract class is abstract and implements the interface it is providing contracts for.

    关于c#-4.0 - 合约类应该是一个抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3640450/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com