我正在尝试检查某个Type
是否是另一个Type
的实例。就像这种简单的方法一样,最好的选择是:
bool Example(Type instance, Type runtimeKnwownType) {
return instance is runtimeKnwownType;
}
这是最佳选择,因为is
适用于接口,但不适用于Type
且不是常数右操作数。另一个选项是Type.IsSubclassOf(object)
不适用于接口。因此,在这种情况下,我需要替换is
。
答案 0 :(得分:1)
您可以在两个对象上GetType
:
public Class1 abc;
public Class2 def;
public void Test()
{
if (abc.GetType() == def.GetType())
{
}
}
或
public bool Example(Type instance, Type runtimeKnwownType)
{
return instance == runtimeKnwownType;
}
答案 1 :(得分:1)
在发表评论之后,您想检查两种类型的分配。您可以尝试this:
Type.IsAssignableFrom(Type c)
“如果c和当前Type表示相同类型,或者 当前类型在c的继承层次结构中,或者如果当前 Type是c实现的接口,或者c是泛型类型 参数,当前的Type表示以下约束之一 c。”