Les attributs Debugger

De Banane Atomic
Révision datée du 1 décembre 2019 à 01:43 par Nicolas (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche

Liens

DebuggerDisplay

Par défaut, le debugger affiche le résultat de la méthode ToString. Cet attribut permet de définir ce que va afficher le debugger sans avoir besoin de redéfinir la méthode ToString. L'attribut DebuggerDisplay à la priorité sur le surcharge de ToString.

Csharp.svg
[DebuggerDisplay("Name = {Name}")]
class Person
{
    public string Name { get; set; }
}

Sans l'attribut : DebuggerDisplaySansAttribut.png
Avec l'attribut : DebuggerDisplayAvecAttribut.png

DebuggerBrowsable

Par défaut, le debugger affiche tous les champs et propriétés. Cet attribut permet de définir ce qui va être afficher et comment.

Csharp.svg
class Person
{
    public string Name { get; set; }

    // Les sous-éléments de cette propriété seront affichés 
    // au lieu de la propriété elle-même
    [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
    public Adress Adress { get; set; }

    // Cette propriété ne sera pas affichée
    [DebuggerBrowsable(DebuggerBrowsableState.Never)]
    public int Age { get; set; }
}

class Adress
{
    public int Number { get; set; }
    public string Street { get; set; }
}

Sans l'attribut : DebuggerBrowsableSansAttribut.png

Avec l'attribut : DebuggerBrowsableAvecAttribut.png

DebuggerTypeProxy

Permet de forcer le debugger à afficher un objet dans un type particulier.