日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

一起谈.NET技术,Visual Studio自定义调试窗体两个小技巧

發布時間:2023/12/20 asp.net 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一起谈.NET技术,Visual Studio自定义调试窗体两个小技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  本文翻譯:Few Tips on Customizing Debugging Window View in Visual Studio 。

  使用DebuggerBrowsable特性可以自定義調試窗體。

  使用DebuggerDisplay特性可以自定義調試信息的顯示。



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

  技巧1、使用DebuggerBrowsable特性

  你可以通過在屬性上使用DebuggerBrowsable特性來自定義調試窗體。這些特性可以用任何屬性、字段和索引上。DebuggerBrowsable的構造函數需要一個DebuggerBrowsableState?參數。DebuggerBrowsableState用來指定調試信息在窗體上顯示的方式。

  它有三個狀態:

??????? 1、Collapsed :如果設置DebuggerBrowsableState為Collapsed 。那么調試信息折疊顯示。默認為Collapsed

??????? 2、Never :調試窗體不顯示調試信息??

??????? 3、RootHidden :隱藏調試信息的根元素,只顯示子元素信息,想了解更多,看MSDN。

  下面我將通過一個例子敘述如何使用DebuggerBrowsable 和DebuggerBrowsableState。開始之前,看下面這段代碼:

class Program
{
static void Main(string[] args)
{
List
<Student> student = new List<Student>();
student.Add(
new Student { Roll = 1, Name = "Abhijit", Marks = 87, Addresses = new Address { Address1 = "add1", Address2 = "add2" } });
student.Add(
new Student { Roll = 2, Name = "Abhishek", Marks = 41, Addresses = new Address { Address1 = "add3", Address2 = "add4" } });
student.Add(
new Student { Roll = 3, Name = "Rahul", Marks = 67, Addresses = new Address { Address1 = "add5", Address2 = "" } });
student.Add(
new Student { Roll = 4, Name = "Sunil", Marks = 91, Addresses = new Address { Address1 = "add11", Address2 = "add122" } });
student.Add(
new Student { Roll = 5, Name = "Atul", Marks = 71, Addresses = new Address { Address1 = "add12", Address2 = "add222" } });
student.Add(
new Student { Roll = 6, Name = "Kunal", Marks = 71, Addresses = new Address { Address1 = "add12", Address2 = "add222" } });
}
/// <summary>
/// Student Class
/// </summary>

class Student
{
public int Roll { get; set; }
public string Name { get; set; }
public int Marks { get; set; }
public Address Addresses { get; set; }
}

/// <summary>
/// Address of Students
/// </summary>
class Address
{

public string Address1 { get; set; }

public string Address2 { get; set; }
}

}

  下面,先看一下不使用這些特性是什么樣的效果。我在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兩個特性來自定義調試窗體的顯示。當你調試一個非常復雜的對象時,這個是非常有用的,它可以使你的調試窗體非常簡單。

轉載于:https://www.cnblogs.com/waw/archive/2011/09/01/2162715.html

總結

以上是生活随笔為你收集整理的一起谈.NET技术,Visual Studio自定义调试窗体两个小技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。