Autor Beitrag
DennisXX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Mi 24.08.11 12:33 
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:

ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
Testklasse meineLiebeTestKlasse = new TestKlasse();
Button meinLieberButton = new Button();

meineLiebeTestKlasse.button1 = meinLieberButton; // setter Aufruf
meinLieberButton = meineLiebeTestKlasse.button1; // getter Aufruf


Zuletzt bearbeitet von Ralf Jansen am Mi 24.08.11 13:08, insgesamt 1-mal bearbeitet
DennisXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178
Erhaltene Danke: 21



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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) 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178
Erhaltene Danke: 21



BeitragVerfasst: Mi 24.08.11 14:17 
ja ich meinte auch statt public -->alle anderen ausser private ;)