Ich möchte das machen:
public Name
{
get;
set
{
dosomething();
??? = value
}
}
Ist es möglich, das automatisch generierte private Feld zu verwenden?
Oder muss ich es folgendermaßen implementieren:
private string name;
public string Name
{
get
{
return name;
}
set
{
dosomething();
name = value
}
}
c#
properties
Peterdk
quelle
quelle
Antworten:
Sobald Sie im Getter oder im Setter benutzerdefinierte Aktionen ausführen möchten, können Sie die automatischen Eigenschaften nicht mehr verwenden.
quelle
Sie können so etwas ausprobieren:
quelle
private set
würde verhindern, dass die Eigenschaft von den Mitgliedern seiner Klasse festgelegt wird. es wäre streng schreibgeschützt. Sie können die Daten nur im Konstruktor festlegen.Das ist nicht möglich. Entweder automatisch implementierte Eigenschaften oder benutzerdefinierter Code.
quelle
Ab C # 7 können Sie Ausdruckskörperdefinitionen für die Eigenschaften
get
undset
Accessoren verwenden.Sehen Sie hier mehr
quelle
Es ist erforderlich, dass Sie es in Ihrem Szenario vollständig implementieren. Beide
get
undset
müssen entweder automatisch implementiert oder vollständig zusammen implementiert werden, keine Kombination aus beiden.quelle