gpt4 book ai didi

.net - "is "算子内部是如何工作的

转载 作者:行者123 更新时间:2023-12-04 15:04:49 24 4
gpt4 key购买 nike

我想将对象的类型与类型进行比较,看看它们是否相同。我没有对象,只有对象的类型。

我可以做type1 == type2并获得普遍平等

我可以有一个递归循环,在其中对 type1.BaseType 重复上述步骤直到 BaseType 为空。

我可以做type1.GetInterface( type2.FullName ) != null检查 type2 是否是 type1 的接口(interface)

如果我把它们放在一起,我会得到

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 (the standard 的第 14.9.10 节)通常使用 isinst ,但如果编译时类型通过某些转换兼容,则不需要。

与 Type 对象的等价物(反向)是 IsAssignableFrom .所有这些都是真的:

"foo" is String;
"foo" is object;

typeof(String).IsAssignableFrom("foo".GetType());
typeof(object).IsAssignableFrom("foo".GetType());

关于.net - "is "算子内部是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2898129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com