Frage

Ich habe gelesen, wie in ASP.NET 3.5 Sie Eigenschaften in C # deklarieren

public DateTime DisplayDate
{
     get;
}

statt

private DateTime _displayDate
public DateTime DisplayDate
{
     get {return _displayDate;}
}

wie dieser Beitrag erklärt.

Meine Frage ist, innerhalb der Klasse, wie greife ich auf die private Variable?

Zum Beispiel anstelle dieser

public MyClass(DateTime myDisplayDate)
{ _displayDate = myDisplayDate; }

Was soll ich zuweisen? Ist es das öffentliche Eigentum?

public MyClass(DateTime myDisplayDate)
{ DisplayDate = myDisplayDate; }

Ist das richtig?

War es hilfreich?

Lösung

public DateTime DisplayDate
{
     get; private set;
}

public MyClass(DateTime myDisplayDate)
{ 
    this.DisplayDate = myDisplayDate; 
}

Andere Tipps

Automatische Eigenschaften wie diese (die ASP.NET nicht darauf beschränkt) sind, so dass Sie nicht mit dem privaten Bereich befassen. Wenn Sie den Wert der Eigenschaft festlegen möchten, verwenden Sie die Immobilie selbst und einen privaten Setter hinzufügen (so nur Ihre Klasse kann eingestellt)

public DateTime DisplayDate
{
    get; 
    private set;
}

Sie müssen immer sowohl die Getter und Setter mit c # 3.0 automatischen Eigenschaften erklären - siehe die anderen Antworten - der Trick ist, die Setter als privat zu markieren.

public Foo { get; private set; }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top