如何在C#中确定子类的类型?

时间:2012-12-26 07:26:36

标签: c# casting

在c#中,我想找到一种方法来执行以下操作:

(cast_by_variable)some_class.some_method();

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

3 个答案:

答案 0 :(得分:0)

Object obj;

 if (some_class is Class1) 
      {
          obj = (Class1)some_class;
         // do something with obj
      }

答案 1 :(得分:0)

投射对象不会改变它的类型,因此您始终可以使用

来确定它
some_class.GetType();

Type type = some_class.GetType();

答案 2 :(得分:0)

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

Type t = some_class_obj.GetType();
object result =t.GetMethod("some_method").Invoke(some_class_object,new object[]{parameter1,parameter2});