Ich habe gerade angefangen, C# zu lernen, und ich habe ein wenig mit der Getter und Setter Stenografie zu kämpfen.{bekommen; Set;} und Zugriffsmodifikatoren
Wie ich es verstehe, sind die beiden folgenden Methoden gleichwertig. Ist das richtig?
//Method 1
public string name { get; set; }
//Method 2
private string name
public string getName() { return name;}
public string setName(string newName) { this.name = newName; }
Zweitens: Wie funktionierts wenn wir unterschiedliche Zugriffsmodifikatoren auf dem Getter/Setter und die Instanzvariable wollten. Die folgenden Codefehler, die mir sagen, dass der Accessor restriktiver als die Eigenschaft sein muss und dass ich keine Modifikatoren für Stören-Accessoren angeben kann. Kann jemand bitte klarstellen?
private int maxTime { public get; public set; }
EDIT: Um zu klären, habe ich kein bestimmtes Ziel, nur um zu verstehen. Ich verstehe nicht, was diese Kurzschreibweise macht. In anderen Sprachen hatte ich private Instanzvariablen und verwendete öffentliche Getter und Setter, um diese Instanzvariablen zu verwalten. Es erlaubt dies, wenn ich die Methoden selbst schreibe, aber nicht mit dieser Kurzschreibweise. Warum ist das?
EDIT2: Eine letzte Frage, um mein Verständnis zu überprüfen. Die beiden folgenden Codefragmente verwenden Eigenschaften zum Verwalten der Variable maxTime. Der einzige Unterschied zwischen den beiden ist Stil. Ist das richtig?
private int maxTime;
public int MaxTime{ get; set; }
vs
private int maxTime;
public int MaxTime
{
get { return maxTime; }
set { maxTime= value; }
}
Warum möchten Sie öffentliche Getter/Setter auf eine private Variable? –
Nein, diese beiden Ansätze sind nicht gleich. Erklären Sie, was Sie tun möchten, nicht nur, mit welchem Code Sie am Ende waren. – CodeCaster
Sie können nicht _private int maxTime {public get; öffentliches Set; } _ als der äußere Zugriff für die Eigenschaft (keine Variable!) ist restriktiver als die innere. Sie könnten _public int maxTime {private get; einstellen; } _ - HINWEIS public modifier nicht erforderlich für set – PaulF