gpt4 book ai didi

c# - 如何取消定义符号 CONTRACTS_FULL?

转载 作者:行者123 更新时间:2023-11-30 22:20:03 25 4
gpt4 key购买 nike

Visual Studio defines the CONTRACTS_FULL symbol automatically if you enable contract checking in the Code Contracts tab of the Project Properties page.

- C# 5.0 In a Nutshell (page 518)

我想禁用/取消定义该符号,但它没有出现在 Conditional compilation symbolsBuild 的领域项目设置中的选项卡。

(我对完全禁用代码契约(Contract)不感兴趣!我的意思是将契约(Contract)检查设置为 None 不是解决方案)。

如果重要的话,我想这样做的原因是因为在我的发布版本中我只想抛出 Contract.Requires<TException> ,我不想扔 ContractException完全没有。

我找到的一个“解决方案”是把 #undef CONTRACTS_FULL在每个文件的第一行,它修复了它,但实际上这样做会很糟糕。

(顺便说一句,直到现在 VS 都没有定义 CONTRACTS_FULL,我必须自己定义它,但我猜某些设置被意外更改了)

最佳答案

您不能运行合约工具并取消定义 CONTRACTS_FULL 交易品种。这些工具取决于所定义的工具。如果你试图强制这样做,什么都不会起作用。这就是我们在 msbuild 脚本中自动定义符号的原因。

代码契约工具的用户永远不应尝试手动定义或取消定义 CONTRACTS_FULL 符号,因为它是一个工具控制变量。

关于c# - 如何取消定义符号 CONTRACTS_FULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15174808/

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