Colaboraciones en el Guille

Ejemplo de DebuggerDisplay Attribute en Visual Studio 2005

 

Fecha: 13/Dic/2005 (12 de diciembre de 2005)
Autor: Bruno Capuano - bcapuano@gmail.com

 


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 = "bcapuano@elbruno.com"

      ' mostrar el nombre completo
      MsgBox(cliente.NombreCompleto)

      End

   End Sub
End Class

En 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


ir al índice principal del Guille