Autor |
Beitrag |
NeulingMitFragen()
Hält's aus hier
Beiträge: 6
|
Verfasst: Do 08.08.13 12:47
Hallo,
ich bin verzweifelt am C# lernen. Die grundsachen kann ich jedoch bereitet mir das wichtigste (Die OOP) schwierigkeiten. Ich versuch mich verzweift durch Methoden und Klassen durchzuwüllen und deren eigentlichen sein zu verstehen. Da ich zusätzlich zu Büchern noch mit Youtube- Video lerne (die auf englisch sind. Sind die einzigen guten :/) verstehe ich eine Sache nicht so ganz. Wozu benutz man in C# die Properties? Ich sehe keinen sinn sie zu benutzen und jedesmal einen getter und setter hinzuschreiben. Könnte mir jemand das bitte erläutern?
Mfg
|
|
Ralf Jansen
Beiträge: 4705
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Do 08.08.13 13:07
Du mußt nicht beides hinschreiben es kann auch nur eins von beiden sein und beides kann unterschiedliche Sichtbarkeiten haben. Häufig z.b. ein public get aber ein private/internal oder was auch immer set.
Wo fehlt dir der Sinn? Im Vergleich zu Feldern oder im Vergleich zu ausprogrammierten Get bzw. Set Methoden?
|
|
NeulingMitFragen()
Hält's aus hier
Beiträge: 6
|
Verfasst: Do 08.08.13 13:19
Ralf Jansen hat folgendes geschrieben : | Du mußt nicht beides hinschreiben es kann auch nur eins von beiden sein und beides kann unterschiedliche Sichtbarkeiten haben. Häufig z.b. ein public get aber ein private/internal oder was auch immer set.
Wo fehlt dir der Sinn? Im Vergleich zu Feldern oder im Vergleich zu ausprogrammierten Get bzw. Set Methoden? |
Hallo,
ich glaube ich habe immernoch nicht den Sinn von Get und Set verstanden.
|
|
Ralf Jansen
Beiträge: 4705
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Do 08.08.13 13:24
Zitat: | ich glaube ich habe immernoch nicht den Sinn von Get und Set verstanden. |
Da würde ich dich dann jetzt, so wie gestern Th69 auch, an ein gutes Buch oder sonstige Grundlagenquelle verweisen. Da wird der Sinn erklärt bzw. sollte.
Wenn es darüber hinaus dann noch Probleme gibt zu verstehen wann man die, anstatt anderer Möglichkeiten, einsetzt können wir gern weiterhelfen.
|
|
Hidden
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Do 08.08.13 13:32
Hallo,
ich bin zwar kein C#-ler, aber grundsätzlich verhält es sich mit properties in der OOP so:
Der Zugriff auf Felder (d.h. auf Variablen, die zu einem Objekt gehören) sollte niemals direkt erfolgen; eine property ist eine Möglichkeit, diesen zu kapseln.
Oftmals willst du in ein bestehendes Programm einbauen, dass wenn die Feldvariable FFeld von außen verändert wird, das Objekt zu dem diese gehört auf bestimmte weise darauf reagiert.
Erfolgt der Zugriff über eine property, so hast du dabei leichtes Spiel: Einfach den Setter anpassen. Bei direktem Zugriff müsstest du nun jede Stelle im Quelltext suchen und verändern, an der ein Zugriff erfolgt.
Ein Unterschied in der Handhabung in den meißten mir bekannten Sprachen ist, dass eine property nicht als var-Parameter an eine Methode übergeben werden kann. Abgesehen von dieser Feinheit wäre es möglich, die property nachträglich einzuführen und bis dahin direkt auf die Feldvariable zuzugreifen -- das gilt aber als schlechter Stil.
Grüße,
Daniel
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
Für diesen Beitrag haben gedankt: NeulingMitFragen()
|
|
Ralf Jansen
Beiträge: 4705
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Do 08.08.13 13:39
Zitat: | Abgesehen von dieser Feinheit wäre es möglich, die property nachträglich einzuführen und bis dahin direkt auf die Feldvariable zuzugreifen -- das gilt aber als schlechter Stil.
|
Und verhalten sich ja auch nicht gleich sondern nur ähnlich. Feld nach Property oder umgekehrt ist ein Breaking Change der mit hoher Wahrscheinlichkeit irgendwas kaputt macht (und das vielfach auch noch unbemerkt ohne offensichtliche Auswirkung).
Für diesen Beitrag haben gedankt: NeulingMitFragen()
|
|
NeulingMitFragen()
Hält's aus hier
Beiträge: 6
|
Verfasst: Do 08.08.13 18:25
vielen Dank euch beiden! Jetzt wird mir einiges klarer.
Mfg
|
|
UGrohne
Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Fr 16.08.13 13:24
|
|