• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 10/12/2018

Choisissez l'affichage des valeurs de vos types

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

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

Exemple de certificat de réussite
Exemple de certificat de réussite