C# Properties getter und setter

Messinho

Cadet 4th Year
Registriert
Feb. 2012
Beiträge
114
Hallo,

Habe nun angefangen programmieren zu lernen und versuche im Moment Properties zu verstehen.
Wenn ich ein Property mit get und set habe Beispiel:
Code:
int eineVariable = 3;

public integer VARIABLE
{
            get { return 3; }
            set { eineVariable = value; }
}

ist es dasselbe wie wenn ich zwei Methoden schreiben würde:
Code:
private int VARIABLE = 3;

public getVARIABLE()
{
           return VARIABLE;
}

public setVARIABLE(int parameter)
{
           VARIABLE = parameter;
}

???
 
Du meinst im oberen Codebeispiel sicherlich get { return eineVariable; } - dann: ja, es ist dasselbe.
 
Abgesehen davon, dass du den Rückgabetyp bei den Methoden unten vergessen hast, sind Properties genau das was diese Methoden machen.
Der Compiler macht aus den Properties sowieso Getter- und Setter-Methoden. Bei Properties handelt es sich nur um Syntactic Sugar.
 
Ja. :D
OK cool, das hatte ich dann richtig verstanden, aber mir war nicht ganz sicher ob ich es richtig verstanden hatte.
Aber dem Compiler wird es egal sein, was man da schreibt oder?
 
Fast, siehe meine Korrekturen:

Code:
int eineVariable = 3;

public [B]int[/B] VARIABLE
{
            get { return [B]eineVariable[/B]; }
            set { eineVariable = value; }
}

wäre etwa das gleiche wie:
Code:
private int VARIABLE = 3;

public [B]int [/B]getVARIABLE()
{
           return VARIABLE;
}

public [B]void[/B] setVARIABLE(int parameter)
{
           VARIABLE = parameter;
}

Der Aufruf ist aber verscheiden:
Class cc;
cc.VARIABLE = 4;
statt
cc.setVARIABLE(4);
 
Man kann es noch kürzer schreiben...
Code:
public integer VARIABLE { get; set; }

Und mit Properties geht mehr (klar, kann man mit Gettern und Settern auch alles irgendwie hinbekommen)... auf Holts Beispiel bezogen z.B.:
Code:
cc.VARIABLE++;
 
Den Compiler juckt es nicht, ob du Properties oder Methoden verwendest. Properties sind nur schöner in der Verwendung, da du sie wie Variablen verwenden kannst.
 
OK. Danke für die schnellen, klaren Antworten! Deshalb habe ich mich für dieses Forum entschieden.
Wenn ich weitere Fragen habe, (zu einem anderen Programmierthema, z.B. Interfaces) dann muss ich wahrscheinlich einen neuen Thread aufmachen, oder, soll ich hier weiterfragen?
 
Zurück
Oben