Frage

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)

War es hilfreich?

Lösung

Type typeOfMyChild = this.GetType();

Thanks to polymorphism when you invoke:

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

it should print Child.

Andere Tipps

Aren't you just looking for the current type ?

    public void printChildType()
    {
         Type typeOfMyChild = GetType();
         MessageBox.Show(typeOfMyChild); 
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top