Entwickler-Ecke
C# - Die Sprache - Viariablenwerte auf andere Klasse übertragen
Xvidia - Mi 07.04.10 12:47
Titel: Viariablenwerte auf andere Klasse übertragen
Meine Frage ist, wie man z.B den Wert von Integer x der Klasse class1 dem Integer y der Klasse class2 übertragen kann.
Beispiel:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| class Class1 { void function() { int x = 1; } }
class Class2 { void function2(); { int y = x; } } |
Ich hoffe ihr könnt mir helfen :>
Nemag - Mi 07.04.10 13:16
Servus
wenn du die Variablen innerhalb der jeweiligen Funktion deklarierst kannst du natürlich nicht darauf zugreifen. Im Allgemeinen greift man auf Eigenschaften der jeweiligen Klasse zu. (direktes Zugreifen auf Klassenvariablen ist unsauber und sollte vermieden werden.)
Schau dir in diesem Zusammenhang auch die Zugriffsmodifizierer (public, private, protected, ...) an. Wenn du diese weglässt wird standardmäßig private genommen, d.h. das außerhalb der Klasse nicht auf die Eigenschaften, Methoden,... zugegriffen werden kann.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| class Class1 { private int zahl; public int Zahl{ get { return zahl; } }
public Class1() { zahl = 0; }
public void Addiere() { zahl++; } }
class Class2 { public Class2(); { Class1 cl = new Class1(); Console.WriteLine(cl.Zahl); cl.Addiere(); Console.WriteLine(cl.Zahl); } } |
danielf - Mi 07.04.10 13:20
Zuerst mal musst du x auch in der Klasse speichern. Das kannst du zum Beispiel mit einem PRoperty machen
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| class Class1 { public int Value { get; private set; }
void function () { Value = 1; } } |
Nachdem du die so erstellt hast, kannst du auf sie zugreifen mit einer <Instanz der Class1>.Value
So kannst du den Wert der Class zwei übergeben
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| class Class2 { void functoin2(int value) { int y = value; } } |
Aufruf wäre dann <instanz der class2>.function2(<instanz der class1>.Value);
Aber ich denke das macht alles gar keinen Sinn.
Wenn du programmieren willst, musst du bei den Grundlagen anfangen und diese verstehen. Es bringt nichts zusammenhanglose Einzelfälle umzusetzen. Deshalb rate ich dir ein Buch zur Hand zu nehmen und dir die absoluten Grundlagen anzueignen.
Schlagwort für dein Problem hier ist objektorientiertes Programmieren und gibt es in jedem Programmieranfänger Buch, wie zum Beispiel im
Galileo Openbook C# [
http://openbook.galileocomputing.de/csharp/] Kapitel 2.
Gruß
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!