如果您在项目属性页面的代码合同选项卡中启用合同检查,Visual Studio 会自动定义CONTRACTS_FULL符号。
- C# 5.0 简而言之(第 518 页)
我想禁用/取消定义该符号,但它没有出现在项目设置Conditional compilation symbols
的选项卡字段中。Build
(我对完全禁用代码合同不感兴趣!我只是说将合同检查设置None
为不是解决方案)。
如果这很重要,我想这样做的原因是因为在我的发布版本中我只想抛出Contract.Requires<TException>
,而我根本不想抛出ContractException
。
我发现的一个“解决方案”是放在#undef CONTRACTS_FULL
每个文件的第一行,它修复了它,但实际上这样做会很糟糕。
(顺便说一句,到目前为止 VS 没有定义CONTRACTS_FULL
,我必须自己定义它,但我猜有些设置不小心改变了)