Visual Studio自定義調(diào)整窗體的兩個小技巧
這篇文章講述如何自定義你的調(diào)試窗體。這些技巧在你調(diào)試應(yīng)用程序的時候是非常有用的。當(dāng)你調(diào)試的時候,你可能希望簡化調(diào)試窗體的信息,或者在調(diào)試窗體上除去對你不重要的不必要的信息,這篇文章將會幫助到你。本文翻譯: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ù)需要一個DebuggerBrowsableState 參數(shù)。DebuggerBrowsableState用來指定調(diào)試信息在窗體上顯示的方式。
它有三個狀態(tài):
1、Collapsed :如果設(shè)置DebuggerBrowsableState為Collapsed 。那么調(diào)試信息折疊顯示。默認(rèn)為Collapsed
2、Never :調(diào)試窗體不顯示調(diào)試信息
3、RootHidden :隱藏調(diào)試信息的根元素,只顯示子元素信息,想了解更多,看MSDN。
下面我將通過一個例子敘述如何使用DebuggerBrowsable 和DebuggerBrowsableState。開始之前,看下面這段代碼:
下面,先看一下不使用這些特性是什么樣的效果。我在main 函數(shù)的結(jié)尾放置一個斷點(diǎn)。你可以得到下面的調(diào)試窗體。
從上圖中可以看到有6個student對象,每個對象的值都不同。Addresses是類Address的對象,它的調(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)情況下,每一個study對象你只得到NameSpace.ClassName這樣的顯示信息。我們可以使用DebuggerDisplay來自定義顯示的信息。 DebuggerDisplay 構(gòu)造函數(shù)需要顯示名作為參數(shù)。你可以傳遞指定參數(shù)來顯示。做如下設(shè)置:
看下效果:
使用DebuggerDisplay的時候必須注意,在{}中必須給出類的正確屬性,否者你會得到下面信息。
將Roll寫成Rolls,如下圖:
提示:The name 'Rolls' does not exist in the current context。如下圖:
總結(jié):本文講述了使用DebuggerBrowsable 和DebuggerDisplay兩個特性來自定義調(diào)試窗體的顯示。當(dāng)你調(diào)試一個非常復(fù)雜的對象時,這個是非常有用的,它可以使你的調(diào)試窗體非常簡單。
原文標(biāo)題:Visual Studio自定義調(diào)試窗體兩個小技巧
鏈接:http://www.cnblogs.com/zhuqil/archive/2010/08/31/Two-Tips-on-Customizing-Debugging-Window.html
【編輯推薦】