Visual Studio自定義除錯窗體兩個小技巧

2021-09-30 05:52:59 字數 2483 閱讀 3416

使用debuggerbrowsable特性可以自定義除錯窗體。

使用debuggerdisplay特性可以自定義除錯資訊的顯示。

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

技巧1、使用debuggerbrowsable特性

你可以通過在屬性上使用debuggerbrowsable特性來自定義除錯窗體。這些特性可以用任何屬性、欄位和索引上。debuggerbrowsable的建構函式需要乙個debuggerbrowsablestate 引數。debuggerbrowsablestate用來指定除錯資訊在窗體上顯示的方式。

它有三個狀態:

1、collapsed :如果設定debuggerbrowsablestate為collapsed 。那麼除錯資訊摺疊顯示。預設為collapsed

2、never :除錯窗體不顯示除錯資訊  

下面我將通過乙個例子敘述如何使用debuggerbrowsable 和debuggerbrowsablestate。開始之前,看下面這段**:

class

program

});student.add(

newstudent });

student.add(

newstudent });

student.add(

newstudent });

student.add(

newstudent });

student.add(

newstudent });

}///

///student class

///

class

student

public

string

name

public

intmarks

public

address addresses

}///

///address of students

///

class

address

public

string

address2 }}

下面,先看一下不使用這些特性是什麼樣的效果。我在main 函式的結尾放置乙個斷點。你可以得到下面的除錯窗體。

從上圖中可以看到有6個student物件,每個物件的值都不同。addresses是類address的物件,它的除錯資訊值是隱藏的。

現在,我想要看到address的所有屬性資訊,隱藏marks 屬性。為了實現這樣的需求,需要為給student 類中的marks 和addresses屬性新增debuggerbrowsable特性。

除錯資訊顯示如下圖:

技巧2、使用debuggerdisplay特性

使用debuggerdisplay可以定義類和字段在除錯窗體中如何顯示。使用 debuggerdisplay可以改變除錯窗體中顯示的資訊和變數,使它顯示你想要的資訊。

看下面沒有使用debuggerdisplay的除錯窗體。

預設情況下,每乙個study物件你只得到namespace.classname這樣的顯示資訊。我們可以使用debuggerdisplay來自定義顯示的資訊。 debuggerdisplay  建構函式需要顯示名作為引數。你可以傳遞指定引數來顯示。做如下設定:

看下效果:

使用debuggerdisplay的時候必須注意,在{}中必須給出類的正確屬性。

如我將roll寫成rolls,如下圖:

總結:本文講述了使用debuggerbrowsable 和debuggerdisplay兩個特性來自定義除錯窗體的顯示。當你除錯乙個非常複雜的物件時,這個是非常有用的,它可以使你的除錯窗體非常簡單。

自定義Visual Studio 2010 快捷鍵

當我們要輸入console.writeline 的時候,只要輸入cw,然後兩下tab鍵就自動完成輸入了,這個應該你知道吧。可是要想輸入console.readline 怎麼辦?是不是輸入cr,然後兩下tab鍵也可以自動完成呢?可是,不是。額。那怎麼辦呢?嗯。那就自定義咯。自定義步驟 以cr cons...

自定義Visual Studio 2010 快捷鍵

當我們要輸入console.writeline 的時候,只要輸入cw,然後兩下tab鍵就自動完成輸入了,這個應該你知道吧。可是要想輸入console.readline 怎麼辦?是不是輸入cr,然後兩下tab鍵也可以自動完成呢?可是,不是。額。那怎麼辦呢?嗯。那就自定義咯。自定義步驟 以cr cons...

Visual Studio 自定義專案模板

經常我們需要新建乙個專案,然後新建我們的view資料夾,viewmodel資料夾,model資料夾,還有把我們的viewmodelbase放入我們的viewmodel,如果還用框架,還需要加上好多。而我一般還有用九幽統計,需要修改好多東西,每新建乙個專案都要做這個,這樣我覺得不好,在網上看到了自定義...