我想在 C# 中执行以下操作:
public bool ValidType(Type type)
{
return _someVar is type;
}
不过,C# 似乎不支持这种语法;“is”右侧的项目似乎必须是绝对类型名称,而不是对类型的引用。
我发现以下代码似乎有效:
return _someVar.GetType().IsInstanceOfType(type) ||
_someVar.GetType().IsSubclassOf(type) ||
_SomeVar.GetType().IsAssignableFrom(type);
我不明白做什么IsAssignableFrom
,除了在某些类型比较中似乎需要它并且似乎IsInstanceOfType
不能IsSubclassOf
正确匹配所有情况。
这真的是测试变量的最佳方法是由另一个变量引用的类型,还是我错过了更简单的语法?