Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# Get Name of Derived Type from Inside base Class

this.GetType().Name should work. You may not have a derived class.


this.GetType().Name always return the name of the current executing type, not the type that the code that it was written in. You can emulate breakpoints though, using Debugger.Break() in a conditional manner:

if (this.GetType().Name == "Problematic type")
    System.Diagnostics.Debugger.Break();

During a debug session...

Remember that instead halting a session to add some throw-away code to then recompile and restart, one can use the debugger to divine that after the breakpoint is hit...

By utilizing the Immediate Window of the debugger and typing a this.GetType().Name off of the instance in question and then pressing Enter, it will be shown.

See VS Docs: Immediate Window

Is there a simple way to get the type of the derived class from within the base class?

Yes, for an example I can determine what the exception is by using the Name property of GetType and in real time:

enter image description here