C#获取调用者类类型(不在静态)

时间:2011-09-25 09:20:57

标签: c# inheritance stackframe

如何在基础中获取调用者类类型?

这是父母,这里我想打印子类型而不发送它

public abstract class Parent: ISomeInterface    {

        public void printChildType()
        {
             Type typeOfMyChild = ?????;
             MessageBox.Show(typeOfMyChild); //how do I get Child typeOfMyChild
        }
}

孩子

public class Child : parent {

}

pirnt the child type:

Child child = new Child();
child.printChildType();

由于

(我已经看过这个:Get inherited caller type name in base static class但我没有使用静态方法)

2 个答案:

答案 0 :(得分:2)

Type typeOfMyChild = this.GetType();

感谢您调用时的多态性:

Child child = new Child();
child.printChildType();

它应该打印Child

答案 1 :(得分:2)

您是不是只想找当前的类型?

    public void printChildType()
    {
         Type typeOfMyChild = GetType();
         MessageBox.Show(typeOfMyChild); 
    }