如何确定c#中子类的类型?

本文关键字:类型 子类 何确定 | 更新日期: 2023-09-27 17:49:36

在c#中,我想找到一种方法来做以下事情:

(cast_by_variable)some_class.some_method();

所以,我想以某种方式确定子类的类型,将信息存储在一个变量中,然后在父类使用cast时使用它。

如何确定c#中子类的类型?

在c#中没有像你提议的那样直接的运行时强制转换,但是有一个解决这个问题的方法。您可以执行以下操作:

Type t = some_class_obj.GetType();
object result =t.GetMethod("some_method").Invoke(some_class_object,new object[]{parameter1,parameter2});
Object obj;
 if (some_class is Class1) 
      {
          obj = (Class1)some_class;
         // do something with obj
      }

强制转换对象不会改变它的类型,所以你总是可以用

来确定它
some_class.GetType();
Type type = some_class.GetType();