C# Get und Set erklärung?
Hallo, ich lerne zurzeit C#, ich glaub ich weiß das ein oder andere und wenn ich was nicht versteh gucke ich in Google oder in Youtube. Das einzigste was ich nicht ganz verstehen kann und ich in Google nix wirkliches gefunden habe ist Get und Set. Also ich versteh was es sein soll, aber z.B was macht es wenn man "public String Firstname { get; set; }" macht?
Danke im Vorraus :)
1 Antwort
public String Firstname { get; set; }
deklariert eine (öffentliche - public) Eigenschaft namens Firstname, die sowohl ausgelesen (get) als auch überschrieben (set) werden kann.
Im Gegensatz hierzu deklariert
public String Firstname { get; }
eine schreibgeschützte (nur-lese- / read only) Eigenschaft. Du kannst auf den Wert dieser Eigenschaft von überall her lesend zugreifen (z. B.
labelVollerName.Text = person.Firstname + " " + person.Lastname;
), aber wenn du versuchst, schreibend auf sie zuzugreifen (z. B.
person.Firstname = "Karl";
), bekommst du eine Fehlermeldung vom Compiler.
Du kannst auch lesegeschützte Eigenschaften deklarieren, die sich beschreiben lassen, z. B.
public String writeOnlyString { set; }
und so was wurde früher auch ab und zu gemacht, aber das ist nicht intuitiv und nicht übersichtlich und gilt allgemein als schlechter Stil. Angemessener ist eine Methode (ohne Rückgabewert - void).
Literaturhinweis:
http://openbook.rheinwerk-verlag.de/visual\_csharp\_2012/1997\_03\_004.html#dodtp0019e906-4cca-4f1a-a629-058e656f2390
Wenn ich das überfliege, könnte es sein, dass deine Frage sich auch auf den letzten Abschnitt bezieht, wo die Methoden get und set nicht ausdrücklich definiert werden.
Bei dieser Abkürzung ergänzt der Compiler (genauer wohl der Präprozessor, der den Programmtext für den Compiler aufarbeitet) sowohl eine private Variable als auch diese Methoden get und set.
(D. h., aus
wird im Hintergrund - also ohne dass du davon ohne Tricks etwas zu sehen bekommst -
)