• 10 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 12/10/18

Choisissez l'affichage des valeurs de vos types

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 : 

Etat du panneau Locals au premier Assert

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 :

Affichage personnalisé dans les Locals
Affichage personnalisé dans les Locals

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 :

Affichage personnalisé dans le Datatip
Affichage personnalisé dans le Data Tip

Remarquez que ce Data Tip contient aussi le même petit triangle pour indiquer que l'on peut afficher les champs :

Affichage personnalisé dans le Datatip
Possibilité de voir les propriétés

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. :)

Example of certificate of achievement
Example of certificate of achievement