C#从Inside基类中获取派生类型的名称

21 c#

我正在解决在基类中处理鼠标事件的问题.由于断点不能很好地解决鼠标事件的故障,我想在事件处理程序中添加一些调试输出.但是,对于我来说,在调试信息中包含实际派生类的名称非常重要,因为基类中的事件处理代码由大量派生类共享,并且只有某些派生类出现问题.

我试过使用this.GetType().Name但这只是返回base类的类型.我当然可以开始修改类,比如说,将派生类传递type给它可以存储它的基类构造函数,但这显然只是一个临时需要的很多变化.有没有一种简单的方法从基类中获取派生类的类型?

n8w*_*wrl 44

this.GetType().Name应该管用.您可能没有派生类.


Cec*_*ame 9

this.GetType().Name始终返回当前执行类型的名称,而不是它所写入的代码的类型.您可以使用Debugger.Break()条件方式模拟断点:

if (this.GetType().Name == "Problematic type")
    System.Diagnostics.Debugger.Break();
Run Code Online (Sandbox Code Playgroud)