How do I get the caller class type in the base?

this is the parent, here I want to print the child type without sending it

public abstract class Parent: ISomeInterface    {

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

the child

public class Child : parent {

}

pirnt the child type :

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

Thanks

(I already saw this one: Get inherited caller type name in base static class but I am using none static methods)

有帮助吗?

解决方案

Type typeOfMyChild = this.GetType();

Thanks to polymorphism when you invoke:

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

it should print Child.

其他提示

Aren't you just looking for the current type ?

    public void printChildType()
    {
         Type typeOfMyChild = GetType();
         MessageBox.Show(typeOfMyChild); 
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top