Avatar ·

Was ist der Unterschied zwischen einem Feld (field) und einer Eigenschaft (property) in C#?

Hallo Kollegen! Ich bin ein C#-Anfänger und kann den Unterschied zwischen einem Feld und einer Eigenschaft nicht verstehen. Beides scheint Daten zu speichern, aber warum wurden dann Eigenschaften erfunden? Hier ist meine Klasse `Person`. Ich kann es so schreiben: ```csharp public class Person { public string Name; } ``` Und das ist ein Feld. Aber ich sehe, dass viele es so schreiben: ```csharp public class Person { private string name; public string Name { get { return name; } set { name = value; } } } ``` Und das ist eine Eigenschaft. Beide Varianten scheinen gleich zu funktionieren: Ich kann einen Wert zuweisen und ihn lesen. Zum Beispiel: ```csharp Person p = new Person(); p.Name = "Alexey"; Console.WriteLine(p.Name); ``` Das Ergebnis wird dasselbe sein. Warum also der Aufwand mit `get` und `set`? P