DebuggerDisplayAttribute Class
Determines how a class or field is displayed in the debugger variable windows.
Assembly: mscorlib (in mscorlib.dll)
'Declaration <AttributeUsageAttribute(AttributeTargets.Assembly Or AttributeTargets.Class Or AttributeTargets.Struct Or AttributeTargets.Enum Or AttributeTargets.Property Or AttributeTargets.Field Or AttributeTargets.Delegate, AllowMultiple := True)> _ <ComVisibleAttribute(True)> _ Public NotInheritable Class DebuggerDisplayAttribute _ Inherits Attribute 'Usage Dim instance As DebuggerDisplayAttribute
The DebuggerDisplayAttribute constructor has a single argument: a string to be displayed in the value column for instances of the type. This string can contain braces ({ and }). The text within a pair of braces is evaluated as the name of a field, property, or method. For example, the following C# code causes "Count = 4" to be displayed when the plus sign (+) is selected to expand the debugger display for an instance of MyHashtable.
[DebuggerDisplay("Count = {count}")]
class MyHashtable
{
public int count = 4;
}
Attributes applied to properties referenced in the expression are not processed. For some compilers, a general expression may be allowed that has only implicit access to this reference for the current instance of the target type. The expression is limited; there is no access to aliases, locals, or pointers.
This attribute can be applied to the following:
Classes
Structures
Delegates
Enumerations
Fields
Properties
Assemblies
The Target property specifies the target type when the attribute is used at the assembly level. The Name property can contain a string similar to the one used in the constructor, with expressions enclosed in braces. The Type property can be set blank if the type should not be displayed in the data windows.
Note: |
|---|
The properties should only be used on type proxies. |
For more information of the use of this attribute in Visual Studio 2005, see Using DebuggerDisplay Attribute.
The following code example can be viewed in Visual Studio 2005 to see the results of applying the DebuggerDisplayAttribute.
Imports System Imports System.Collections Imports System.Diagnostics Imports System.Reflection Class DebugViewTest Shared Sub Main(ByVal args() As String) Dim myHashTable As New MyHashtable() myHashTable.Add("one", 1) myHashTable.Add("two", 2) Console.WriteLine(myHashTable.ToString()) Console.WriteLine("In Main.") End Sub 'Main End Class 'DebugViewTest <DebuggerDisplay("{value}", Name := "{key}")> _ Friend Class KeyValuePairs Private dictionary As IDictionary Private key As Object Private value As Object Public Sub New(ByVal dictionary As IDictionary, ByVal key As Object, ByVal value As Object) Me.value = value Me.key = key Me.dictionary = dictionary End Sub 'New End Class 'KeyValuePairs <DebuggerDisplay("Count = {Count}"), DebuggerTypeProxy(GetType(MyHashtable.HashtableDebugView))> _ Class MyHashtable Inherits Hashtable Private Const TestString As String = "This should not appear in the debug window." Friend Class HashtableDebugView Private hashtable As Hashtable Public Const TestString As String = "This should appear in the debug window." Public Sub New(ByVal hashtable As Hashtable) Me.hashtable = hashtable End Sub 'New End Class 'HashtableDebugView End Class 'MyHashtable
Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Note: