Revenez au même endroit dans le débogage du test unitaire T_WebPageTask.CheckCreation avec un point d’arrêt sur la création de la variable task. Dans le chapitre précédent, on était descendu dans le code du constructeur avec Step Into (F11). Si vous remontez dans le code du test unitaire avec Step Out (Shift+F11), les Locals montrent maintenant :
Comment expliquer la différence entre now qui s’affiche comme on voudrait alors que la WebPageTask ne montre que le nom de son type comme valeur ?
Le débogueur tire profit du fait que tout type .NET implémente la méthode ToString : elle est donc appelée pour chaque variable afin de calculer ce qu'il faut afficher.
On va donc le faire pour la WebPageTask :
public override string ToString()
{
return $"{Name} ({Category}) - ${Url})";
}
Le résultat est maintenant le suivant si l'on relance le débogage du test unitaire :
Et cerise sur le gâteau, cette valeur est aussi affichée lorsque l'on déplace la souris sur une variable dans l'éditeur :
Remarquez que ce Data Tip contient aussi le même petit triangle pour indiquer que l'on peut afficher les champs :
Résumé
Nous venons de voir comment personnaliser l’affichage de la valeur associée à l’instance d’un type afin de faciliter l’accès à son contenu plutôt que d’avoir le nom de son type. Le chapitre suivant va vous montrer comment utiliser un autre panneau que les Locals afin d’être toujours en mesure de surveiller la valeur de variables indépendamment du contexte d’exécution. :)