如何在C#中查找对象类型?

14 浏览
0 Comments

如何在C#中查找对象类型?

这个问题已经有了答案

类型检查:typeof,GetType或is?

C# generic list 如何获取 T 的类型?[重复]

我有一个可观察对象的收集,其中包含几个已知类型的对象,但是当遍历它们时,我不知道当前对象的类型。

如何获取当前对象的类型?

admin 更改状态以发布 2023年5月21日
0
0 Comments

如果只有几种不同的类型,并且您根据类型执行不同的操作,则可以使用is检查每种类型:

foreach(var thing in collection){
    if(thing is TypeA){
        doTypeA();
    }else if(thing is TypeB){
        doTypeB();
}

另一个可能的选项是,如果它在设计上是有意义的并且对象在您的控制下,则可以使它们都实现包括获取描述该类型的枚举的方法的接口。然后,您可以对其进行切换。

0
0 Comments

在运行时获取对象的类型,你需要调用GetType()函数。如果你知道对象仅可能是某些已知类型,可以使用switch语句:

Type t = obj.GetType();
switch (t.Name)
{
    case "Int32":
        Console.WriteLine("int type");
        break;
    case "String":
        Console.WriteLine("string type");
         break;
    default:
        Console.WriteLine("Another type");
        break;
}

0