我正在使用该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;
}
Run Code Online (Sandbox Code Playgroud)
我尝试了各种组合,但显然我错过了一些东西。我意识到我可以只检查文本,但这感觉很脏。
您需要ConsoleApp2.Class1使用typeof运算符包装以获取 type 的对象Type,该对象可以与您的其他类型对象进行比较。
如果要检查是否完全相等,可以使用Type.Equals或==。
var type1 = Type.GetType("ConsoleApp2.Class1");
var type2 = typeof(ConsoleApp2.Class1);
if (type1.Equals(type2)) { ... }
if (type1 == type2) { ... }
Run Code Online (Sandbox Code Playgroud)
如果要检查相等性或子类型关系(类似于myObject is SomeType),可以使用
if (type1.IsAssignableFrom(type2)) { ... }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |