Nur*_*mir 0 .net c# visual-studio
我得到expectExceptionType是一个'字段',但用作if(异常是expectedExceptionType)行的'type'错误.但是你可以看到它是一个类型.这里有什么问题?
我使用Visual Studio 2013与.NET 4.5
public sealed class ExpectedInnerException : ExpectedExceptionBaseAttribute
{
private Type expectedExceptionType;
private string expectedExceptionMessage;
public ExpectedInnerException(Type expectedExceptionType, string expectedExceptionMessage)
{
this.expectedExceptionType = expectedExceptionType;
this.expectedExceptionMessage = expectedExceptionMessage;
}
protected override void Verify(Exception exception)
{
if (exception is expectedExceptionType)
{
}
//Some other code
}
}
Run Code Online (Sandbox Code Playgroud)
expectedExceptionType是类型的实例,Type本身不是编译时类型.因此写下这个:
protected override void Verify(Exception exception)
{
if (exception.GetType() == expectedExceptionType)
{
}
//Some other code
}
Run Code Online (Sandbox Code Playgroud)
编辑:如果你的类型是一个子类,expectedExceptionType你可以检查IsAssignableFrom:
if (exception.GetType().IsAssignableFrom(expectedExceptionType.GetType()))
Run Code Online (Sandbox Code Playgroud)