Quando eseguiamo il debug di una applicazione utilizzando Visual Studio, nel momento in cui con il mouse passiamo al di sopra di una variabile, ci appare un tooltip che permette di analizzare il contenuto della variabile stessa.
L’attributo DebuggerDisplay ci permette di personalizzare come apparirà questo tooltip. Supponiamo di avere la classe Employee:
- Public Class Employee
- Public Property LastName As String
- Public Property FirstName As String
- End Class
E di voler eseguire il debug di una semplice applicazione console:
Il tooltip che ci permette di vedere i valori assunti dalla variabile employee ci dice che la variabile è di tipo Employee e ci obbliga ad aprire l’albero delle proprietà per vedere il contenuto della stessa.
Un modo per ovviare a questo e visualizzare una stringa che indichi il contenuto della variabile è implementare l’override del metodo ToString(). Questo fatto ci obbliga, però, ad utilizzare un metodo che è, di solito, utilizzato per scopi applicativi (ad esempio per mostrare i dati in una listbox) per eseguire il debug. Non è detto che le informazioni che dobbiamo mostrare in debug siano le stesse da mostrare con il ToString(). Per risolvere questo problema ci viene in aiuto l’attributo DebuggerDisplayAttribute il cui scopo è definire come deve essere visualizzato il nostro oggetto quando viene aperto il tooltip di debug:
- <Diagnostics.DebuggerDisplay("Employee = {LastName} {FirstName}")>
- Public Class Employee
- Public Property LastName As String
- Public Property FirstName As String
- End Class
In questo modo otteniamo:
L’attributo può essere applicato ad assembly, classi, strutture, campi, proprietà o delegate.
Commenti