在调试会话期间,在特定实例的调试信息中识别实际派生类的名称对我来说很重要。
我尝试使用this.GetType().Name
,但这只是返回类的类型base
。
有没有一种简单的方法可以从基类中获取派生类的类型?
在调试会话期间,在特定实例的调试信息中识别实际派生类的名称对我来说很重要。
我尝试使用this.GetType().Name
,但这只是返回类的类型base
。
有没有一种简单的方法可以从基类中获取派生类的类型?
this.GetType().Name
应该管用。您可能没有派生类。
this.GetType().Name
始终返回当前执行类型的名称,而不是编写它的代码的类型。不过,您可以模拟断点,Debugger.Break()
以有条件的方式使用:
if (this.GetType().Name == "Problematic type")
System.Diagnostics.Debugger.Break();
在调试会话期间...
请记住,与其暂停会话以添加一些丢弃的代码然后重新编译并重新启动,不如使用调试器来预测断点被击中后......
通过使用Immediate Window
调试器并键入this.GetType().Name
相关实例的关闭,然后按Enter,它将显示出来。
请参阅 VS Docs:立即窗口
有没有一种简单的方法可以从基类中获取派生类的类型?
是的,例如,我可以通过使用 和 的Name
属性GetType
实时确定异常是什么:
引发事件时,请务必将真实的发送者传递给发送者属性。监听类中的发送者对象应正确指向引发事件的子类。