侧边栏壁纸
  • 累计撰写 119 篇文章
  • 累计创建 60 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

C#中自定义class在调试时如何定制对象显示的内容

码峰
2022-09-27 / 0 评论 / 0 点赞 / 66 阅读 / 391 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-09-28,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

问题描述

在C#中,单步调试程序时,鼠标指上去就可以看到对象的值,比如string类型,鼠标指上去就可以看到字符串的类容,而自定义的class,当鼠标指向对象时默认是看不到类的属性的值的,只能将类展开才能看到,有没有办法可以在鼠标悬停上去后或者在局部变量窗口中直接能看到对象中感兴趣的属性的值呢?

实现方法

C#在System.Diagnostics中提供了一些调试辅助的类,我们这里要实现前面所说的功能的类就是DebuggerDisplayAttribute,新建一个测试调试的类如下:

    class DebugClass
    {
        public string item1 { get; set; }

        public string item2 { get; set; }
    }

此时调试时,创建该类的对象,当鼠标悬停到对象上是无法看待item1和item2的值的,如下图:
image-1664337684220
我们对以上类的定义修改如下:

    [DebuggerDisplay("item1 = {item1}, item2 = {item2}")]
    class DebugClass
    {
        public string item1 { get; set; }

        public string item2 { get; set; }
    }

然后,再调试时,就可以看到定义好的属性值了,如下图:
image-1664337828982
可以看到,鼠标悬停以及在局部变量窗口中都能看到,属性的值。

总结

以上介绍了C#中一个调试时,显示对象关注的变量的小技巧,这个技巧对于有些类,尤其是有特定ID或者Key的类的对象调试非常有用。

0

评论区