this.GetType().Name
should work. I think, in your case, you may not have a derived class. If it’s returning the base class name, it shouldn’t have a derived class.
Using this on:
- Base class – Outputs Base class name
- Derived class – Outputs Derived class name
- Derived class cast to Base class – Outputs Derived class name
- Derived class passed into a function that accepts Base class as a parameter – Outputs Derived class name