Contract.Assert不扔编译错误(Contract.Assert do not throw

2019-09-18 06:16发布

我试图添加验证了我喜欢的类型,在编译时使用合同,但不幸的是它不工作。 例如代码在编译项目下面不给编译器错误。 我应该让什么东西?

Contract.Assert(false, "Invalid state!");

Answer 1:

是的,你需要启用静态检查。 进入项目属性,并参观了“代码契约”选项卡。 当然,你需要安装静态检测扩展第一,这IIRC仅适用于Visual Studio的终极。 请参阅用户文档为可用的具体选项的详细信息。

请注意,这最初的编译阶段之后会发生,所以有时你会看到构建的第一部分和静态检查的结果之间的延迟。 (这是不是一个真正的“编译”的错误 - 这是一个“合同登记”的错误。)



文章来源: Contract.Assert do not throw compilation error