C# Get Name of Derived Type from Inside base Class

前端 未结 4 1917
死守一世寂寞
死守一世寂寞 2021-02-05 02:39

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

相关标签:
4条回答
  • 2021-02-05 02:50

    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.

    0 讨论(0)
  • 2021-02-05 02:51

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

    0 讨论(0)
  • 2021-02-05 03:05

    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();
    
    0 讨论(0)
  • 2021-02-05 03:15

    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:

    0 讨论(0)
提交回复
热议问题