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;}
}

comme l'explique ce message.

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?

Était-ce utile?

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; }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top