次の例を見てください。
public void Foo()
{
//Code...
Debug.Assert(ExpensiveTest());
//Code...
}
Debug.Assert
リリースモードでコンパイルすると、メソッドはどうなりますか?ExpensiveTest()
まだ実行されますか?そうでない場合、それはどのように機能しますか(何も評価しないように設定できるマクロではないため)?それが実行される場合、それはデバッグアサーションの目的を無効にしませんか?