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
}
}
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.
Vous pouvez essayer quelque chose comme ça:
public string Name { get; private set; }
public void SetName(string value)
{
DoSomething();
this.Name = value;
}
Ce n'est pas possible. Propriétés implémentées automatiquement ou code personnalisé.
Il est nécessaire que vous l'implémentiez pleinement en fonction de votre scénario. get
et set
doivent être implémentés automatiquement ou intégralement, et non une combinaison des deux.
À partir de C # 7, vous pouvez utiliser les définitions de corps d'expression pour les accesseurs get
et set
de la propriété.
private string _name;
public Name
{
get => _name;
set
{
DoSomething();
_name = value;
}
}