web-dev-qa-db-fra.com

c #: getter / setter

J'ai vu quelque chose comme ce qui suit quelque part et je me demandais ce que cela voulait dire. Je sais que ce sont des accesseurs et des setters, mais je veux savoir pourquoi le type de chaîne est défini comme ceci. Merci de m'avoir aidé.

public string Type { get; set; }
88
Maya

Ce sont Propriétés implémentées automatiquement (Propriétés automatiques en abrégé).

Le compilateur générera automatiquement l'équivalent de l'implémentation simple suivante:

private string _type;

public string Type
{
    get { return _type; }
    set { _type = value; }
}
149
Justin Niessner

C'est un auto-property et c'est la notation abrégée pour ceci:

private string type;
public string Type
{
  get { return this.type; }
  set { this.type = value; }
}
29
Teoman Soygul

En C # 6:

Il est maintenant possible de déclarer les propriétés automatiques comme un champ:

public string FirstName { get; set; } = "Ropert";

Propriétés automatiques en lecture seule

public string FirstName { get;} = "Ropert";
22
M.Hassan
public string Type { get; set; } 

N'est-ce pas différent alors

private string _Type;

public string Type
{    
get { return _Type; }
set { _Type = value; }
}
13
Security Hound

Cela signifie que le compilateur définit un champ de support lors de l'exécution. C'est la syntaxe des propriétés implémentées automatiquement.

Informations complémentaires: propriétés implémentées automatiquement

8
Maverik

C'est une propriété automatiquement sauvegardée, fondamentalement équivalente à

private string type;
public string Type
{
   get{ return type; }
   set{ type = value; }
}
5
Jamiec

Celles-ci sont appelées propriétés automatiques.

http://msdn.Microsoft.com/en-us/library/bb384054.aspx

Sur le plan fonctionnel (et en termes d'IL compilé), elles sont identiques aux propriétés avec des champs de sauvegarde.

4
Jeff

Je sais que c’est une vieille question, mais avec la publication de C # 6, vous pouvez maintenant faire quelque chose comme cela pour les propriétés privées.

public constructor()
{
   myProp = "some value";
}

public string myProp { get; }
1
Anonymous