在C#中比较包括基类型的类型

时间:2015-02-27 09:43:27

标签: c# types comparison

如果我捕获异常,它也会捕获类型及其基类型:

try
{
    throw new EndpointNotFoundException(...);
}
catch (CommunicationException e)
{
    // EndpointNotFoundException is caught (inherits from CommunicationException)
}

但是如何以相同的方式比较类型呢?

var e = new EndpointNotFoundException(...);
if (e.GetType() == typeof(CommunicationException)) // is not true
{

}

我知道我可以看Type.BaseType,但是不是最简单的方法来匹配包括基类型树在内的类型吗?

1 个答案:

答案 0 :(得分:3)

你应该这样做:

if (e is CommunicationException)

is operator