[プロジェクト プロパティ] ページの [コード コントラクト] タブでコントラクト チェックを有効にすると、Visual Studio はCONTRACTS_FULLシンボルを自動的に定義します。
- C# 5.0 の概要 (518 ページ)
シンボルを無効/未定義にしたいのですが、プロジェクト設定のタブのConditional compilation symbols
フィールドに表示されません。Build
(コード コントラクトを完全に無効にすることには興味がありません! つまり、コントラクト チェックを に設定することNone
は解決策ではないということです)。
それが重要な場合、私がこれをやりたい理由は、私のリリース ビルドでは をスローしたいだけで、まったくContract.Requires<TException>
スローしたくないからですContractException
。
私が見つけた1つの「解決策」は#undef CONTRACTS_FULL
、各ファイルの最初の行に置くことです。これで修正されましたが、実際にそれを行うのは恐ろしいことです。
(ところで、今までVSは定義CONTRACTS_FULL
していなかったので、自分で定義する必要がありましたが、誤って設定が変更されたと思います)