170 votes

Déclaration Getter et Setter en .NET

Je me demandais quelles étaient les différences entre ces déclarations de getters et setters et s'il y avait une méthode préférée (et pourquoi). La première peut être générée automatiquement par Visual Studio. Qu'en est-il des autres ? Merci

1er

string _myProperty { get; set; }

2ème

string _myProperty;

public string myProperty
{
    get { return _myProperty; }
    set { _myProperty = value; }
}

3ème

string _myProperty;

public string getMyProperty()
{
  return this._myProperty;
}

public void setMyProperty(string value)
{
  this._myProperty = value;
}

0voto

NG. Points 1564

Le 1er est celui par défaut, quand il n'y a rien de spécial à renvoyer ou à écrire. La 2ème et la 3ème sont fondamentalement les mêmes, la 3ème étant une version un peu plus étendue de la 2ème.

0voto

DarthVader Points 10955

Commençons par 3. Ça ne marcherait pas. public getMyProperty() n'a pas de retour type.

Et les numéros 1 et 2 sont en fait les mêmes choses. 2 est ce que le numéro 1 devient après compilation.

Donc 1 et 2 sont les mêmes choses. Avec 2, vous pouvez avoir une certaine validation ou une mise en cache dans votre modèle.

sinon, ils deviennent identiques.

0voto

Christian Sauer Points 2845

La première est la forme "courte" - vous l'utilisez lorsque vous ne voulez pas faire quelque chose de compliqué avec vos getters et setters. Il n'est pas possible d'exécuter une méthode ou quelque chose comme ça dans cette forme.

La deuxième et la troisième forme sont presque identiques, bien que la deuxième soit comprimée à une ligne. Cette forme est déconseillée par stylecop car elle a l'air un peu bizarre et n'est pas conforme aux guides de style C'.

J'utiliserais la troisième forme si je prévoyais d'utiliser mes getters / setters pour quelque chose de spécial, par exemple pour utiliser une construction paresseuse ou autre.

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