我无法为此获得正确的语法。
假设我有两个实例化对象,obj1和obj2。
现在,我想检查两件事:
1)obj1的类型是obj2类型的子类。
2)obj1的类型与obj2的类型是相同。
我非常确定我只能通过
来实现1)obj1.GetType().IsSubclassOf(obj2.GetType())
但如果obj1和obj2属于同一类型,上面的内容会返回true吗?
答案 0 :(得分:4)
MSDN表示,如果obj1和obj2属于同一个班级http://msdn.microsoft.com/en-us/library/system.type.issubclassof.aspx
,它将返回false你可以做到
obj1.GetType().IsSubclassOf(obj2.GetType()) || obj1.GetType() == (obj2.GetType()
答案 1 :(得分:3)
如有疑问,请咨询the documentation(强调我的):
返回值:
true
如果Type
参数代表的c
和当前Type
代表类,并且代表的类别为当前Type
派生自c
所代表的类;否则,false
。如果
false
且当前c
代表同一类,此方法也会返回Type
。
如果您想检查两种类型是否相同,您可以只比较他们的Type
:
obj1.GetType() == obj2.GetType()
答案 2 :(得分:0)
obj2.GetType().IsAssignableFrom(obj1.GetType())