Entwickler-Ecke
C# - Die Sprache - Klassen und Get Set Methoden in C Sharp
DennisXX - Mi 24.08.11 12:33
Titel: Klassen und Get Set Methoden in C Sharp
Hallo zusammen !
Wie kann ich in C Sharp die einzelnen get und set Methoden einer Klassen innerhalb einer anderen Klassen ansprechen und nutzen? Ich verstehe das nicht so ganz. Hier mal ein Stück Code:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| class Testklasse {
private Button button1 {get; set;}
} |
Wie kann ich das jetzt in einer anderen Klasse nutzen?
Grüße
Dennis
Christian S. - Mi 24.08.11 12:44
Zuerst einmal musst du es public machen. Dann kannst Du button1 Werte zuweisen bzw. lesen, als wäre es ein Feld. Hättest Du eine get- und/oder set-Methode definiert, würden die das dann behandeln.
Ralf Jansen - Mi 24.08.11 12:46
Du erzeugst dir in der anderen Klasse ein Instanz dieser Klasse und liest die Property aus, wenn sie denn Public wäre.
C#-Quelltext
1: 2: 3: 4: 5:
| Testklasse meineLiebeTestKlasse = new TestKlasse(); Button meinLieberButton = new Button();
meineLiebeTestKlasse.button1 = meinLieberButton; meinLieberButton = meineLiebeTestKlasse.button1; |
DennisXX - Mi 24.08.11 12:47
Ich will die Werte bzw. das Objekt von Button 1 in einer anderen Klasse auslesen. Dafür sind die get und set Methoden in C Sharp gedacht oder nicht? Und genau jetzt stellt sich die Frage, wie ich in einer anderen Klasse diese Methoden nutzen kann?
DennisXX - Mi 24.08.11 12:54
Ralf ich habe eben mal deinen Code ausprobiert und das funktioniert nicht. Ich sehe auch in meinem Intellisense vom Vsiual Studio nirgends etwas von meinen felder bzw. den Referenzen vom Typ Button usw.
Grüße
Dennis
Ralf Jansen - Mi 24.08.11 13:09
Ich habe den Code angepasst. Dein Naming ist etwas gewöhnungsbedürtig ;)
Hast du deine Property auch von private auf public geändert.
DennisXX - Mi 24.08.11 13:21
Hallo !
Nein die Property sind noch auf Private, aber dass müssen sie doch auch bleiben (trotz entsprechender Get- und Set-Methoden) oder sehe ich das falsch?
Grüße
Dennis
dark-destination1988 - Mi 24.08.11 13:25
nein properties sind immer public sonst sind es keine properties. man muss doch von aussen drauf zugreiffen können
Ralf Jansen - Mi 24.08.11 13:31
Zitat: |
oder sehe ich das falsch? |
Ja. Vielleicht solltest du erst mal eine normale Property ausprobieren(siehe die Msdn
Hilfe [
http://msdn.microsoft.com/de-de/library/w86s7x04.aspx]) die noch ein Feld hinter der Property hat. Ein solches Feld sollte damit die Property Sinn macht nicht public sein. Da du gleich eine automatische Property verwendest die das Feld hinter der Property vor dir versteckt scheinst du das durcheinander zu bringen.
Zitat: |
nein properties sind immer public sonst sind es keine properties. |
Properties können jede Sichtbarkeit haben. Allgemein private macht sicherlich wenig Sinn. Mir fällt zumindest gerade kein vernünftiger Grund ein irgendjemand wird aber sicher einen Anwendungsfall kennen. Protected oder internal wird aber sicherlich häufiger verwendet. Und bei automatischen Properties macht es zum Beispiel häufiger Sinn nur den Setter private zu machen.
dark-destination1988 - Mi 24.08.11 14:17
ja ich meinte auch statt public -->alle anderen ausser private ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!