Ejemplo de DebuggerDisplay Attribute en Visual Studio 2005
Fecha: 13/Dic/2005 (12 de diciembre de 2005)
|
Hace unos días mientras revisaba las novedades del Blog del equipo de desarrollo de Visual Basic de Microsoft; me encontré con una interesante característica que podemos aprovechar para incrementar las capacidades de depuración de nuestras clases. Me refiero al atributo DebuggerDisplay, con el que podemos definir la información que se verá en la ventana de depuración de variables.
Por ejemplo, supongamos la siguiente clase Cliente;
<DebuggerDisplay("Cliente: {NombreCompleto & "" - Mail:"" & EMail}")> _ Public Class Cliente Dim _EMail As String Public Property EMail() As String Get Return _EMail End Get Set(ByVal value As String) _EMail = value End Set End Property Dim _Nombre As String = "" Public Property Nombre() As String Get Return _Nombre End Get Set(ByVal value As String) _Nombre = value End Set End Property Dim _Apellido As String = "" Public Property Apellido() As String Get Return _Apellido End Get Set(ByVal value As String) _Apellido = value End Set End Property Public ReadOnly Property NombreCompleto() As String Get Return _Apellido & ", " & _Nombre End Get End Property End Class
El atributo DebuggerDisplay, nos permite definir cual es el valor por defecto con el que se verá la información de esta clase cliente en el visor de variables. En este caso, he puesto que se mostrará la propiedad NombreCompleto, seguida del EMail del usuario. (He podido concatenar varias propiedades y una cadena, dentro de la definición del atributo)
Para probarlo, podemos agregar el siguiente código a una aplicacion de ejemplo:
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' crear cliente Dim cliente As New Cliente cliente.Apellido = "Capuano" cliente.Nombre = "Bruno" cliente.EMail = "[email protected]" ' mostrar el nombre completo MsgBox(cliente.NombreCompleto) End End Sub End ClassEn el código anterior, definimos y creamos una instancia de una variable del tipo Cliente. Cuando ejecutamos la aplicacion, si detenemos la misma en modo debug, podemos ver la información que definimos en el atributo DebuggerDisplay en la ventana de Autos por ejemplo:
En mi opinión es una característica muy útil, y si la extendemos un poco y estudiamos otros atributos adicionales (por ejemplo, DebuggerTypeProxy). En el post del blog, se hace referencia a otro artículo muy interesante, relacionado con la creación de un "visualizer" personalizado para el visor de variables (en c#). Se los recomiendo :D.
Si tienen cualquier duda al respecto, no duden en consultarme.
Saludos,
El Bruno
http://spaces.msn.com/members/brunocapuano
Espacios de nombres usados en el código de este artículo:
System.
System.Diagnostics