メソッドの先頭で入力パラメーターを検証するためにSystem.Function
メソッドを使用しているコードです(次の抜粋されたコード例を参照してください)。Debug.Assert(..)
public class TestClass : IInterface
{
}
public class Verifier
{
public static void Verify(IInterface objectToVerify)
{
Debug.Assert((objectToVerify is TestClass), "Passed object must be type of TestClass");
// ReSharper (Version 7.1.1) marks here "Expression is always false
if (!(objectToVerify is TestClass))
{
return;
}
// do something ...
}
}
ステートメントをコメントアウトするとDebug.Assert
、ReSharper の警告が消えます。私の意見では、ReSharper はこのDebug.Assert
ステートメントを無視する必要があります。これは、Debug.Assert
ステートメントが満たされない場合も、その下のコードが実行されるためです (たとえば、リリース モードで)。
あなたの意見は何ですか?または、代替の実装のアイデアはありますか?