[英]C# Get Name of Derived Type from Inside base Class
在调试会话期间,在特定实例的调试信息中识别实际派生类的名称对我来说很重要。
我尝试使用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: 立即窗口
有没有一种简单的方法可以从基类中获取派生类的类型?
是的,例如,我可以通过使用GetType
的Name
属性实时确定异常是什么:
引发事件时,请务必将真实的发送者传递给发送者属性。 监听类中的发送者对象应正确指向引发事件的子类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.