这工作正常:
var expectedType = typeof(string); object value = "..."; if (value.GetType().IsAssignableFrom(expectedType)) { ... } 但我怎么检查是否值是不设置一个字符串数组expectedType来typeof(string[])?我想做类似的事情:
var expectedType = typeof(string); object value = new[] {"...", "---"}; if (value.GetType().IsArrayOf(expectedType)) // <--- { ... } 这可能吗? 问题来源于stack overflow
使用Type.IsArray和Type.GetElementType()检查数组的元素类型。
Type valueType = value.GetType(); if (valueType.IsArray && expectedType.IsAssignableFrom(valueType.GetElementType()) { ... } 当心Type.IsAssignableFrom()。如果要检查类型是否完全匹配,则应检查是否相等(typeA == typeB)。如果要检查给定类型是类型本身还是子类(或接口),则应使用Type.IsAssignableFrom():
typeof(BaseClass).IsAssignableFrom(typeof(ExpectedSubclass))
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。