Werteübergabe mithilfe von Klasse
-
Hallo,
ich würde gerne verschiedene Werte (zB eine Ganzzahl) in eine andere Form übergeben
So ungefähr: (CComputer ist eine Klasse)
CComputer pc1 = new CComputer(); private void bu_uebernahme_Click(object sender, EventArgs e) { pc1.setProzessor(Convert.ToString(tb_prozessor.Text)); }
Das klappt wunderbar und wenn ich mir die Werte auslesen will klappt das auch.
Jedoch wenn ich jetzt auf eine neue Form gehen und mein "CComputer" neu deklariere,
dann sind alle Werte weg....
Wie kann ich das verhindern bzw. wie kann ich von mehreren Formen auf die Klasse zugreifen ohne das jedesmal die werte futsch sind ..
-
Willst Du auf das CComputer-Objekt von einemanderen Form aus zugreifen? Übergib' es als Property Deines Forms, welches das Objekt erstellt hat:
im Form-Code:
public CComputer CurrentComputer { get { return pc1; } }
pc1 muesste dann aber ein Memeber Deines Form sein, also
CComputer pc1;
-
Hallo
Nimm doch einfach immer die gleiche Instanz, dann bleiben auch die Werte erhalten.
chrische
-
Ich habe ein ähnliches Problem!
Ich versuche auf Werte eines Arrays zuzugreifen, das in einem anderem Formular
angelegt ist. Die beiden Formulare haben den selben Namespace, aber verschiedene Klassennamen. Eine dauerhafte Instanz am Anfang der Klasse erzeugt mir einen Stacküberlauf!Gibt es denn keine simple Lösung, sowas ähnliches wie ein globales Array zu erstellen, auch wenn das kein guter Stil ist??
MfG
TD
-
Du könntest eine statische Klasse verwenden, die wie ein Singleton implementiert ist. In dieser Klasse könnte ein statisches Array sich befinden, was Du dann global anfassen kannst.
Aber das haste nicht von mir gehört, wenn jemand fragt.
-
Eine dauerhafte Instanz am Anfang der Klasse erzeugt mir einen Stacküberlauf!
Dürfte interessant werden, das hört sich "merkwürdig" an.