Je veux faire ça:
public Name
{
get;
set
{
dosomething();
??? = value
}
}
Est-il possible d'utiliser le champ privé généré automatiquement?
Ou est-il nécessaire que je l'implémente de cette façon:
private string name;
public string Name
{
get
{
return name;
}
set
{
dosomething();
name = value
}
}
c#
properties
Peterdk
la source
la source
Réponses:
Une fois que vous voulez faire quelque chose de personnalisé dans le getter ou le setter, vous ne pouvez plus utiliser les propriétés automatiques.
la source
Vous pouvez essayer quelque chose comme ceci:
la source
private set
empêcherait la propriété d'être définie par les membres de sa classe; ce serait strictement en lecture seule. Vous ne pourrez définir ses données que dans le constructeur.Ce n'est pas possible. Soit des propriétés implémentées automatiquement, soit du code personnalisé.
la source
À partir de C # 7, vous pouvez utiliser des définitions de corps d'expression pour la propriété
get
et lesset
accesseurs.En savoir plus ici
la source
Il est nécessaire que vous l'implémentiez pleinement compte tenu de votre scénario. Les deux
get
etset
doivent être soit mis en œuvre automatiquement, soit entièrement mis en œuvre ensemble, et non une combinaison des deux.la source