【发布时间】:2010-05-24 15:33:13
【问题描述】:
我想将对象的类型与类型进行比较,看看它们是否相同。我没有对象,只有对象的类型。
我可以通过type1 == type2 获得普遍平等
我可以有一个递归循环,我对type1.BaseType 重复上述步骤,直到 BaseType 为空。
我可以通过type1.GetInterface( type2.FullName ) != null 来检查 type2 是否是 type1 的接口
如果我把它们放在一起,我会得到
if ( type2.IsInterface )
return type1.GetInterface( type2.FullName ) != null;
while ( type1 != null ) {
if ( type1 == type2 )
return true;
type1 = type1.BaseType;
}
return false;
这就是is 关键字的全部内容。我找不到正确的关键字来插入 Reflector 搜索以查找该功能,并且谷歌搜索“is”并没有真正的帮助
【问题讨论】:
-
这要看'is'这个词是什么意思
-
+1 有趣。但是,我会假设“is”关键字是在运行时本地实现的,并且不使用反射。
-
我从没想过我会在 SO 上看到相关的比尔·克林顿引述。
-
有C++ type_info 和 typeid() 底层吗?
标签: .net