0

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)

Community
  • 1
  • 1
SexyMF
  • 10,657
  • 33
  • 102
  • 206

2 Answers2

2
Type typeOfMyChild = this.GetType();

Thanks to polymorphism when you invoke:

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

it should print Child.

Darin Dimitrov
  • 1,023,142
  • 271
  • 3,287
  • 2,928
2

Aren't you just looking for the current type ?

    public void printChildType()
    {
         Type typeOfMyChild = GetType();
         MessageBox.Show(typeOfMyChild); 
    }
driis
  • 161,458
  • 45
  • 265
  • 341