Accès membre privé des propriétés ASP.NET 3.5 dans la classe
-
05-07-2019 - |
Question
J'ai lu comment, dans ASP.NET 3.5, vous pouvez déclarer des propriétés en C #
public DateTime DisplayDate
{
get;
}
au lieu de
private DateTime _displayDate
public DateTime DisplayDate
{
get {return _displayDate;}
}
Ma question est, dans la classe, comment puis-je accéder à la variable privée?
Par exemple, au lieu de cela
public MyClass(DateTime myDisplayDate)
{ _displayDate = myDisplayDate; }
À quoi devrais-je assigner? Est-ce la propriété publique?
public MyClass(DateTime myDisplayDate)
{ DisplayDate = myDisplayDate; }
Est-ce correct?
La solution
public DateTime DisplayDate
{
get; private set;
}
public MyClass(DateTime myDisplayDate)
{
this.DisplayDate = myDisplayDate;
}
Autres conseils
Les propriétés automatiques comme celle-ci (qui ne sont pas limitées à ASP.NET) sont présentes afin que vous n'ayez pas à traiter avec le champ privé. Si vous souhaitez définir la valeur de la propriété, utilisez-la et ajoutez un séparateur privé (pour que seule votre classe puisse le définir)
public DateTime DisplayDate
{
get;
private set;
}
Vous devez toujours déclarer à la fois le getter et le setter avec les propriétés automatiques de c # 3.0 - voir les autres réponses - l'astuce consiste à marquer le setter comme privé.
public Foo { get; private set; }