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

Paw*_*ała 6 c# types casting object

我有一些已知类型的可观察对象集合,但是当迭代它们时,我不知道当前对象的类型。

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

Lex*_*ust 0

如果只有几种不同的类型,并且您根据类型采取不同的操作,那么您可以用来is检查每种类型:

foreach(var thing in collection){
    if(thing is TypeA){
        doTypeA();
    }else if(thing is TypeB){
        doTypeB();
}
Run Code Online (Sandbox Code Playgroud)

另一种可能的选择是,如果它具有设计意义并且对象在您的控制之下,那么让它们全部实现一个接口,其中包含一个获取描述类型的 Enum 的方法?然后你就可以打开它。