3 votes

En C#, que signifie ce code avec "get" ?

Je suis novice en C#.

private string m;
public string M { get { return m; } }

Est-ce une sorte de getter/setter en C# comme en Java ?

11voto

CodeNaked Points 23538

Cette partie est un champ :

private string m;

Cette partie est une propriété en lecture seule qui renvoie la valeur de l'élément m champ :

public string M { get { return m; } }

Vous pourriez en faire une propriété en lecture-écriture comme suit :

public string M {
    get { return m; }
    set { m = value; }
}

Ou vous pourriez avoir une logique plus complexe :

public string M {
    get {
        if (string.IsNullOrEmpty(m))
            return "m is null or empty";
        return m;
    }
}

Fondamentalement, les champs ne sont bons qu'à contenir des choses, tandis que les propriétés sont plutôt des méthodes et peuvent introduire de la logique.

1voto

evilone Points 10400
private string m;

Tout d'abord, vous créez une nouvelle variable de type chaîne de caractères avec le modificateur private. Si cette variable est dans la classe, alors elle n'est pas visible en dehors de cette classe.

public string M { get { return m; } }

Ensuite, vous créez une propriété de cette variable de type chaîne. Cette propriété est en lecture seule et vous pouvez accéder à cette variable en dehors de la classe dans laquelle vous avez créé cette variable. Vous ne pouvez pas attribuer de valeurs à cette variable avec ce type de propriété.

1voto

canon Points 14870

Il s'agit d'un fichier public en lecture seule propriété c'est-à-dire qu'il n'a qu'un seul public. get accesseur. Propriétés auto-implémentées peut obtenir le même effet avec moins de code :

public string M { get; private set; }

Cette propriété dispose d'une get mais un privé set . Le CLR génère en fait un m -comme champ pour stocker la valeur... mais c'est caché.

0voto

Steve Morgan Points 9296

C'est un getter. Il n'y a pas de setter accessible au public, donc m doit être défini ailleurs dans la classe.

0voto

V4Vendetta Points 15354

Ceci est pour définir les propriétés Readonly en C#, ici vous avez seulement un getter.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X