Visual Studio中定義了CONTRACTS_FULL符號,如果 啓用合同在代碼檢查自動合同項目 屬性頁的選項卡。如何取消定義符號CONTRACTS_FULL?
- C#5.0一言以蔽之(頁518)
我想禁用/取消定義的符號,但它不會出現在項目設置中Build
標籤的Conditional compilation symbols
領域。 (我對完全禁用代碼合同不感興趣!因此我只是表示將合同檢查設置爲None
不是解決方案)。
如果很重要,我想這樣做的原因是因爲在我的發佈版本中,我只想扔在Contract.Requires<TException>
上,我根本不想丟棄ContractException
。
我發現的一個「解決方案」是將#undef CONTRACTS_FULL
放在每個文件的第一行,它修復了它,但實際上這樣做會很糟糕。
(BTW直到現在VS沒有定義CONTRACTS_FULL
,我不得不把它定義自己,但我想一些設置意外更改)
所以沒有辦法只拋出'Requires'異常,從來沒有'ContractException'? –
MasterMastic
2013-04-25 10:34:34
@Ken好吧,如果您只使用Requires合同並運行重寫器,那麼是的,您永遠不會得到ContractExceptions。另一種解決方法是將運行時檢查級別設置爲ReleaseRequires。 –
2013-04-25 14:46:56