西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)C#.NET → Visual Studio自定義窗體調(diào)試技巧

Visual Studio自定義窗體調(diào)試技巧

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:本站整理時(shí)間:2010/8/31 23:06:39字體大。A-A+

作者:佚名點(diǎn)擊:268次評(píng)論:8次標(biāo)簽: Visual

  • 類型:電子教程大。58.6M語言:中文 評(píng)分:3.3
  • 標(biāo)簽:
立即下載

這篇文章講述如何自定義你的調(diào)試窗體。這些技巧在你調(diào)試應(yīng)用程序的時(shí)候是非常有用的。當(dāng)你調(diào)試的時(shí)候,你可能希望簡(jiǎn)化調(diào)試窗體的信息,或者在調(diào)試窗體上除去對(duì)你不重要的不必要的信息,這篇文章將會(huì)幫助到你。本文翻譯:Few Tips on Customizing Debugging Window View in Visual Studio 。

    使用DebuggerBrowsable特性可以自定義調(diào)試窗體。

    使用DebuggerDisplay特性可以自定義調(diào)試信息的顯示。

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

   技巧1、使用DebuggerBrowsable特性

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

    它有三個(gè)狀態(tài):

        1、Collapsed :如果設(shè)置DebuggerBrowsableState為Collapsed 。那么調(diào)試信息折疊顯示。默認(rèn)為Collapsed

        2、Never :調(diào)試窗體不顯示調(diào)試信息  

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

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

01 class Program

02 {

03 static void Main(string[] args)

04 {

05 List<Student> student = new List<Student>();

06 student.Add(new Student { Roll = 1, Name = "Abhijit", Marks = 87, Addresses = new Address { Address1 = "add1", Address2 = "add2" } });

07 student.Add(new Student { Roll = 2, Name = "Abhishek", Marks = 41, Addresses = new Address { Address1 = "add3", Address2 = "add4" } });

08 student.Add(new Student { Roll = 3, Name = "Rahul", Marks = 67, Addresses = new Address { Address1 = "add5", Address2 = "" } });

09 student.Add(new Student { Roll = 4, Name = "Sunil", Marks = 91, Addresses = new Address { Address1 = "add11", Address2 = "add122" } });

10 student.Add(new Student { Roll = 5, Name = "Atul", Marks = 71, Addresses = new Address { Address1 = "add12", Address2 = "add222" } });

11 student.Add(new Student { Roll = 6, Name = "Kunal", Marks = 71, Addresses = new Address { Address1 = "add12", Address2 = "add222" } });

12 }

13 /// <summary>

14 /// Student Class

15 /// </summary>

16

17 class Student

18 {

19 public int Roll { get; set; }

20 public string Name { get; set; }

21 public int Marks { get; set; }

22 public Address Addresses { get; set; }

23 }

24

25 /// <summary>

26 /// Address of Students

27 /// </summary>

28 class Address

29 {

30

31 public string Address1 { get; set; }

32

33 public string Address2 { get; set; }

34 }

35

36 } 
 下面,先看一下不使用這些特性是什么樣的效果。我在main 函數(shù)的結(jié)尾放置一個(gè)斷點(diǎn)。你可以得到下面的調(diào)試窗體。

     從上圖中可以看到有6個(gè)student對(duì)象,每個(gè)對(duì)象的值都不同。Addresses是類Address的對(duì)象,它的調(diào)試信息值是隱藏的。

     現(xiàn)在,我想要看到address的所有屬性信息,隱藏Marks 屬性。為了實(shí)現(xiàn)這樣的需求,需要為給student 類中的Marks 和Addresses屬性添加DebuggerBrowsable特性。如下圖:

 技巧2、使用DebuggerDisplay特性

    使用DebuggerDisplay可以定義類和字段在調(diào)試窗體中如何顯示。使用 DebuggerDisplay可以改變調(diào)試窗體中顯示的信息和變量,使它顯示你想要的信息。

看下面沒有使用DebuggerDisplay 的調(diào)試窗體。

默認(rèn)情況下,每一個(gè)study對(duì)象你只得到NameSpace.ClassName這樣的顯示信息。我們可以使用DebuggerDisplay來自定義顯示的信息。 DebuggerDisplay  構(gòu)造函數(shù)需要顯示名作為參數(shù)。你可以傳遞指定參數(shù)來顯示。做如下設(shè)置:

看下效果:

    使用DebuggerDisplay的時(shí)候必須注意,在{}中必須給出類的正確屬性,否者你會(huì)得到下面信息。

    將Roll寫成Rolls,如下圖:

   提示:The name 'Rolls' does not exist in the current context。如下圖:

總結(jié):本文講述了使用DebuggerBrowsable 和DebuggerDisplay兩個(gè)特性來自定義調(diào)試窗體的顯示。當(dāng)你調(diào)試一個(gè)非常復(fù)雜的對(duì)象時(shí),這個(gè)是非常有用的,它可以使你的調(diào)試窗體非常簡(jiǎn)單。

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(8)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)