如何检查对象是否不是特定类型?

Sac*_*nth 40 c# c#-4.0

我想检查对象是否不是特定类型.我知道如何检查,如果事情一个特定类型的:

if (t is TypeA)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

if (t isnt TypeA)
{
   ...
}   
Run Code Online (Sandbox Code Playgroud)

不起作用.

ie.*_*ie. 62

C#不是很自然的语言;)使用这个

if(!(t is TypeA))
{
   ...
}
Run Code Online (Sandbox Code Playgroud)


Tig*_*ran 10

如果你不仅要检查,你可以使用as运算符.

var a = t as TypeA;
if(a!= null)
   //use a.. 
Run Code Online (Sandbox Code Playgroud)

这样,如果你想在检查后使用一个类型,你可以避免双重铸造..


Pal*_*eta 5

扩展方法来救援!

public static class ObjectExtensions
{
    public static bool Isnt(this object source, Type targetType)
    {
        return source.GetType() != targetType;
    }
}
Run Code Online (Sandbox Code Playgroud)

用法

if (t.Isnt(typeof(TypeA)))
{
   ...
}
Run Code Online (Sandbox Code Playgroud)