在C#中,如何找到某个对象是某个类的实例而不是该类的超类?
“is”将返回true,即使该对象实际上来自超类。
答案 0 :(得分:14)
typeof(SpecifiedClass) == obj.GetType()
答案 1 :(得分:3)
您可以将对象的类型与您要查找的类的类型进行比较:
class A { }
class B : A { }
A a = new A();
if(a.GetType() == typeof(A)) // returns true
{
}
A b = new B();
if(b.GetType() == typeof(A)) // returns false
{
}
答案 2 :(得分:2)
不幸的是,这在C#中是不可能的,因为C#不支持多重继承。给这个继承树:
GrandParent
Parent
Child
Child
将始终是继承链中它上面的每个类型的实例。
答案 3 :(得分:1)
您可能希望在Type类上查看几个方法: Type.IsInstaceOf 和 Type.IsSubclassOf
您可以传入您正在寻找的课程并获取所需的信息。
答案 4 :(得分:0)
return
这对我有用