我正在使用该Type.GetType()
方法返回给定字符串的类型;但是,我正在努力寻找一种检查类型的方法:
var type = Type.GetType("ConsoleApp2.Class1");
if (type is ConsoleApp2.Class1) // Is never true, and gives a warning to that effect
{
}
switch (type)
{
case ConsoleApp2.Class1:
// Will not compile (Expression of Type cannot be handled by a pattern of type Class1
break;
}
我尝试了各种组合,但是显然我缺少了一些东西。我意识到我可以检查文本,但这感觉很脏。
您需要ConsoleApp2.Class1
用typeof
运算符包装以获得类型为的对象Type
,该对象可以与其他类型的对象进行比较。
如果要检查完全相等,可以使用Type.Equals
或==
。
var type1 = Type.GetType("ConsoleApp2.Class1");
var type2 = typeof(ConsoleApp2.Class1);
if (type1.Equals(type2)) { ... }
if (type1 == type2) { ... }
如果要检查是否相等或子类型关系(类似于myObject is SomeType
),则可以使用
if (type1.IsAssignableFrom(type2)) { ... }
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句