Dot.Blog

C#, XAML, WinUI, WPF, Android, MAUI, IoT, IA, ChatGPT, Prompt Engineering

C#–Simplifiez-vous le debug

Un tout petit ajout au code d’une classe, sans le perturber, permet d’obtenir un confort incroyable lorsqu’on débogue…

Prenons une classe simple

Essayons le debug sur la variable “order” :

image

C’est pas génial…

Essayons sur la propriété “Lines” de cet Order :

image

C’est pas beaucoup mieux…

Il faut entrer dans une arborescence de relations pour espérer voir l’information qui intéresse en débogue.

Bricoler ToString() ?

C’est assez moche comme solution… D’autant que ToString() appartient à la classe et qu’il peut avoir utilisé pour simplifier un affichage dans une ListView ou autre. C’est mal de faire ainsi, mais ça existe. Aller tripatouiller le ToString() juste pour les besoins du débogue c’est peut-être casser le code utilisé ailleurs…

Un Simple Attribut

Avec l’attribut DebuggerDisplay qu’on place sur la classe inutile de bricoler le code de celle-ci, on l’instrumentalise de l’extérieur. Totalement dédié au debug on fait ce qu’on veut, on affiche certaines données à un moment donné parce qu’elles ont un sens pour la séance de débogue en cours, on en affiche d’autres si besoin est dix minutes plus tard. La classe décorée n’a pas changé et c’est essentiel.

Voici les classes utilisées par l’exemple maintenant décorées :

image

Et voici les mêmes affichages de débogue présentés plus haut mais avec l’attribut :

image

 

image

Tout de suite c’est plus clair et sans toucher le code de la classe. L’attribut peut rester, en version release il est ignoré.

Conclusion

Il me semble que j’avais déjà du en parler il ya longtemps mais comme je remarque que cet attribut n’est toujours pas beaucoup utilisé, autant en remettre une petite couche !

 

Stay Tuned !

Faites des heureux, partagez l'article !
blog comments powered by Disqus