Entwickler-Ecke

C# - Die Sprache - was sind Getter (evtl. auch Setter ? ) ??


vermis-one - Do 19.04.07 01:22
Titel: was sind Getter (evtl. auch Setter ? ) ??
Hallo zusammen...

Ich hab mich letztens in der SharpDevelop-IDE "verklickt" und bin in der code-ansicht auf die
symbole rechts neben den zeilennummern gekommen.. da ist so´n kleines menü aufgepoppt..
(wusste bisher nicht das da sowas gibt)

unter anderem gibts bei variablen die option "getter erstellen".. jetz bin ich neugierig..
nun ist meine frage was ist das und wozu sind die gut ?

sieht dann in etwa so aus..

C#-Quelltext
1:
2:
3:
private Typ varName {
  get { return varName; }
        }


hab schon ein wenig "geforscht" aber nix gefunden was mir das verständlich gemacht hätte..
wenn mir das jemand erklären könnte wär ich dankbar..

mfg

ps: wenn ich mich recht entsinne.. gehören get und set nicht irgendwie zusammen..
wenn ja, gibts sicherlich auch einen "setter".. oder ?


UGrohne - Do 19.04.07 07:39

Das sind einfach Methoden, mit denen Du den Zugriff genauer regeln kannst und auch noch DInge ausführen kannst, bevor eine Eigenschaft an den Aufrufenden zurückgegeben wird. Ähnliche den Properties in Delphi.

Ich nutze getter und setter beispielsweise zur Erst-Initialisierung von Variablen. Folgendes Beispiels sollte das ganz gut erläutern:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
private object test;
public object Test
{
  get 
  {
    if (test == null)
      test = new EineKlasse();
    return test;
  }
  set
  {
    test = value;
  }
}

Schau Dir das erstmal genau an ;)


vermis-one - Do 19.04.07 19:11

:idea: ah jetz ja.. :idea:
im prinzip erstellt man damit eigenschaften der klasse..
wie z.b. bei einem textfeld die eigenschaft text.. -> textbox1.Text = var
und bestimmt ob diese geschrieben [set] und (oder nur) gelesen [get] werden können..
bei normalen variablen kann man ja in der regel immer den wert ändern..

ich denke das ich das jetz verstanden habe..
hatte wohl wieder mal ne ganz lange leitung.. :autsch:
vielen dank..