Hiho,
das sind so genannte Properties. Die macht man in C# antselle von Get()
und Set() Methoden.
Die gibts in zwei Ausführungen.
Einmal die einfachen, wie du sie hast. Damit kannst du vor allem die
Erreichtbarkeit steuern.
z.bsp
1 | class foobar{
|
2 | public int foo { get;set;}
|
3 | public int bar { get; private set;}
|
4 | }
|
5 |
|
6 | foobar my = new foobar();
|
jetzt kannst du auf foo von außen lesend und schreibend zugreifen.
1 | my.foo = 5; // geht
|
2 | Console.WriteLine(my.foo); //geht
|
auf bar kannst du von außen nur lesend zugreifen, aber in den
Klassenmethoden setzen.
1 | my.bar = 5; // <- Fehler
|
2 | Console.WriteLine(my.bar); // geht
|
Dann gibts da noch die Fullproperties. Die sehen ähnlich aus sind aber
komplexer und bieten mehr Möglichkeiten
1 | class foobar{
|
2 | public int Foo{ get {return foo;}
|
3 | set {foo=value} };
|
4 | private int foo;
|
5 | }
|
das macht erst mal das gleiche, wie das einfache property. Du könntest
aber jetzt z.Bsp eine Bereichsüberprüfung beim setzen einführen.
1 | class foobar{
|
2 | public int Foo{ get {return foo;}
|
3 | set { if (value <0 && value >5)
|
4 | throw new ArgumentOutOfRangeException()
|
5 | foo = value;}
|
6 | };
|
7 | private int foo;
|
8 | }
|
Hoffe, das hilft ein wenig