During a debug session, it\'s important for me to identify the name of the actual derived class in the debug info of specific instances.
I tried using this
When raising an event, be sure to pass the real sender to the sender property. The sender object in the listening class should correctly point to the child class that raised the event.
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: