如何在C#中检查运行时类型

斯坦纳吉

我正在使用该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;
}

我尝试了各种组合,但是显然我缺少了一些东西。我意识到我可以检查文本,但这感觉很脏。

Heinzi

您需要ConsoleApp2.Class1typeof运算符包装以获得类型为的对象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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C#如何在运行时将模板类型的类型与内置类型进行比较

如何在运行时检查Vue组件的类型?

如何在TypeScript的运行时检查对象类型?

如何在运行时检查TypeVar的类型

C#中的运行时类型与编译时类型

如何在表达式树C#中使用运行时生成的类型

如何在Golang中的运行时动态转换类型?

如何在C ++中的运行时确定数据类型?

如何在C#中写入运行时生成的.dll文件?

如何在 Unity c# 中在运行时管理 AudioSources

如何在C#中的运行时更改可观察对象?

如何在运行时C#中清除表单控件

如何在Xamarin Android中的运行时执行C#代码?

如何在运行时在Visual Studio中编辑C#代码,而不是编辑并继续

如何在Castle Windsor for C#中解决运行时依赖项

Java中运行时执行的过程是什么?JVM在运行时如何检查数组类型?

在C#中运行时如何读取exe文件

我如何在C中运行时定义函数

如何在C ++中打印案例的运行时间

如何在运行时在C中检测OS

如何在测试运行时类型检查期间模拟 Python 类?

如何在Go语言中在运行时检查变量类型

如何在运行时在 C# MVC 中在运行时向已经存在的数据表添加新行

Haskell:如何检查IO上的运行时类型?

Chrome扩展程序是否在Opera上运行时如何在运行时检查?

如何在运行时在Scala中检查我是否在@specialized函数或类中?

如何在C#中在运行时添加/执行并最终将新代码删除到程序中

我如何使用C#检查数据源的正常运行时间值

批注如何在运行时检查验证