我的代码我正在使用该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
语句没有被执行,下面的代码也会被执行(例如在发布模式下)
你有什么意见?还是有替代的实现思路?