C#中自定义class在调试时如何定制对象显示的内容
2024-08-05
54
问题描述
在C#中,单步调试程序时,鼠标指上去就可以看到对象的值,比如string类型,鼠标指上去就可以看到字符串的类容,而自定义的class,当鼠标指向对象时默认是看不到类的属性的值的,只能将类展开才能看到,有没有办法可以在鼠标悬停上去后或者在局部变量窗口中直接能看到对象中感兴趣的属性的值呢?
实现方法
C#在System.Diagnostics中提供了一些调试辅助的类,我们这里要实现前面所说的功能的类就是DebuggerDisplayAttribute,新建一个测试调试的类如下:
class DebugClass
{
public string item1 { get; set; }
public string item2 { get; set; }
}
此时调试时,创建该类的对象,当鼠标悬停到对象上是无法看待item1和item2的值的,如下图:
我们对以上类的定义修改如下:
[DebuggerDisplay(item1 = {item1}, item2 = {item2})]
class DebugClass
{
public string item1 { get; set; }
public string item2 { get; set; }
}
然后,再调试时,就可以看到定义好的属性值了,如下图:
可以看到,鼠标悬停以及在局部变量窗口中都能看到,属性的值。
总结
以上介绍了C#中一个调试时,显示对象关注的变量的小技巧,这个技巧对于有些类,尤其是有特定ID或者Key的类的对象调试非常有用。
更新于:3个月前赞一波!2
相关文章
- 【说站】python对象方法是什么
- 【说站】python类如何实例化对象
- 【说站】java如何创建对象
- 【说站】java反射获取对象的方法
- 【说站】python如何追写内容
- 【说站】python提取字符串指定内容
- 【说站】java反射创建对象
- 【说站】java如何创建对象数组
- 【说站】java自定义注解是什么?
- AUC is not defined when there is no positive class in the data (Parameter 'PosSample')
- 【说站】python vim中有哪些对象
- JS 函数中的 arguments 类数组对象
- CSS overflow 内容溢出时的显示方式
- CSS 控制内容显示行数
- linux 命令之查看文件内容
- .git 目录结构内容解析
- git mv 从工作区和暂存区中重命名内容
- git rm 从暂存区中删除内容
- VSCode 自定义字体、连字效果
- 禁止添加属性、封闭对象、冻结对象的 API
文章评论
评论问答