• 保存到桌面加入收藏设为首页
服务器技术

Visual Studio自定义调试窗体两个小技巧

时间:2016-07-05 10:39:56   作者:老谭   来源:IDCSPED   阅读:3694   评论:0
内容摘要:微软MVP Abhijit Jana曾在个人网站Abhijit's World of .NET上发表博文《Few Tips on Customizing Debugging Window View in Visual Studio》,文中介绍了两个Visual Studio自定义调试窗体的小技巧。个人博客&l...

微软MVP Abhijit Jana曾在个人网站Abhijit's World of .NET上发表博文《Few Tips on Customizing Debugging Window View in Visual Studio》,文中介绍了两个Visual Studio自定义调试窗体的小技巧。个人博客“用自己c语言写个Hello World”版主朱祁林曾对此文进行了翻译,现把译文转载于此,全文如下:

这篇文章讲述如何自定义你的调试窗体。这些技巧在你调试应用程序的时候是非常有用的。当你调试的时候,你可能希望简化调试窗体的信息,或者在调试窗体上除去对你不重要的不必要的信息,这篇文章将会帮助到你。

使用DebuggerBrowsable特性可以自定义调试窗体。

使用DebuggerDisplay特性可以自定义调试信息的显示。

要使用这些特性,需要引用System.Diagnostics命名空间。

e巧1、使用DebuggerBrowsable特性

你可以通过在属性上使用DebuggerBrowsable特性来自定义调试窗体。这些特性可以用任何属性、字段和索引上。 DebuggerBrowsable的构造函数需要一个DebuggerBrowsableState 参数。 DebuggerBrowsableState用来指定调试信息在窗体上显示的e式。

它有三个状态:

1、Collapsed :如果设置DebuggerBrowsableState为Collapsed 。那么调试信息折叠显示。默认为Collapsed

2、Never :调试窗体不显示调试信息

3、RootHidden :隐藏调试信息的根元素,只显示子元素信息,想了解更多,看MSDN。

下面我将通过一个例子叙述如何使用DebuggerBrowsable 和DebuggerBrowsableState。开始之前,看下面这段代码:

  1. 01  class Program 
  2. 02  { 
  3. 03      static void Main(string[] args) 
  4. 04      { 
  5. 05          List<Student> student = new List<Student>(); 
  6. 06          student.Add(new Student { Roll = 1Name = "Abhijit"Marks = 87Addresses = new Address { Address1 = "add1"Address2 = "add2" } }); 
  7. 07          student.Add(new Student { Roll = 2Name = "Abhishek"Marks = 41Addresses = new Address { Address1 = "add3"Address2 = "add4" } }); 
  8. 08          student.Add(new Student { Roll = 3Name = "Rahul"Marks = 67Addresses = new Address { Address1 = "add5"Address2 = "" } }); 
  9. 09          student.Add(new Student { Roll = 4Name = "Sunil"Marks = 91Addresses = new Address { Address1 = "add11"Address2 = "add122" } }); 
  10. 10          student.Add(new Student { Roll = 5Name = "Atul"Marks = 71Addresses = new Address { Address1 = "add12"Address2 = "add222" } }); 
  11. 11          student.Add(new Student { Roll = 6Name = "Kunal"Marks = 71Addresses = new Address { Address1 = "add12"Address2 = "add222" } }); 
  12. 12      } 
  13. 13      /// <summary> 
  14. 14      /// Student Class 
  15. 15      /// </summary> 
  16. 16    
  17. 17      class Student 
  18. 18      { 
  19. 19          public int Roll { get; set; } 
  20. 20          public string Name { get; set; } 
  21. 21          public int Marks { get; set; } 
  22. 22          public Address Addresses { get; set; } 
  23. 23      } 
  24. 24    
  25. 25      /// <summary> 
  26. 26      /// Address of Students 
  27. 27      /// </summary> 
  28. 28      class Address 
  29. 29      { 
  30. 30    
  31. 31          public string Address1 { get; set; } 
  32. 32    
  33. 33          public string Address2 { get; set; } 
  34. 34      } 
  35. 35    
  36. 36  } 

下面,先看一下不使用这些特性是什么样的效果。我在main 函数的结尾放置/个断点。你可以得到下面的调试窗体。

从上图中可以看到有6个student对象,每个对象的值都不同。Addresses是类Address的对象,它的调试信息值是隐藏的。

现在,我想要看到address的所有属性信息,隐藏Marks 属性。为了实现这样的需求,需要为给student 类中的Marks 和Addresses属性添加DebuggerBrowsable特性。

调试信息显示如下图:

技巧2、使用DebuggerDisplay特性

使用DebuggerDisplay可以定义类和字段在调试窗体中如何显示。使用 DebuggerDisplay可以改变调试窗体中显示的信息和变量,使它显示你想要的信息。

看下面没有使用DebuggerDisplay 的调试窗体。

默认情况下,每一个study对象你只得到NameSpace.ClassName这样的显示信息。我们可以使用DebuggerDisplay来自定义显示的信息。 DebuggerDisplay 构造函数需要显示名作为参数。你可以传递指定参数来显示。做如下设置:

看下效果:

使用DebuggerDisplay的时候必须注意,在{}中必须给出类的正确属性。

如我将Roll写成Rolls,如下图:

调试窗体会提示:The name 'Rolls' does not exist in the current context。如下图:

总结:本文讲述了使用DebuggerBrowsable 和DebuggerDisplay两个特性来自定义调试窗体的显示。当你调试一个非常复杂的对象时,这个是非常有用的,它可以使你的调试窗体非常简单。

原文链接:Few Tips on Customizing Debugging Window View in Visual Studio

译文链接:Visual Studio自定义调试窗体两个小技巧


IDCsped 提供最新的IT互联网资讯,本着分享传播的宗旨,我们希望能帮助更多人了解需要的信息!

部分文章转载自互联网、部分是IDCsped原创文章,如果转载,请注明出处:www.idcsped.com !
微信号:13430280788  欢迎加微信交流!

标签:应用程序  小技巧  个人网站  微软  文章  
相关评论

销售电话:13430280788

Copyright © 2012-2017 | www.idcsped.com 版权所有

  粤公网安备 44010502001126号  粤ICP备12006439号-1