栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何检查变量的类型是否与存储在变量中的类型匹配

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何检查变量的类型是否与存储在变量中的类型匹配

其他答案都包含重大遗漏。

is
操作者 检查操作的运行时类型是 完全相同 给定的类型; 而是检查运行时类型 是否与 给定类型 兼容

class Animal {}class Tiger : Animal {}...object x = new Tiger();bool b1 = x is Tiger; // truebool b2 = x is Animal; // true also! Every tiger is an animal.

但是使用反射检查类型 身份 将检查 身份 ,而不是 兼容性

bool b5 = x.GetType() == typeof(Tiger); // truebool b6 = x.GetType() == typeof(Animal); // false! even though x is an animalor with the type variablebool b7 = t == typeof(Tiger); // truebool b8 = t == typeof(Animal); // false! even though x is an

如果这不是您想要的,那么您可能需要IsAssignableFrom:

bool b9 = typeof(Tiger).IsAssignableFrom(x.GetType()); // truebool b10 = typeof(Animal).IsAssignableFrom(x.GetType()); // true! A variable of type Animal may be assigned a Tiger.or with the type variablebool b11 = t.IsAssignableFrom(x.GetType()); // truebool b12 = t.IsAssignableFrom(x.GetType()); // true! A


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/465262.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号