Entwickler-Ecke
WinForms - Wie auf ein Objekt von verschiedenen Methoden aus zugreifen?
pixelport - Mo 01.08.11 13:10
Titel: Wie auf ein Objekt von verschiedenen Methoden aus zugreifen?
Beschäftige mich jetzt seit ein Tagen mit C#. Ich verstehe nicht wie ich Objektorientiert mit events arbeiten kann.
Wie kann ich denn jetzt auf int i der Klasse Zeug zugreifen wenn ein Button geklickt wurde? Ich kann nicht in jeder Methode ein neues Zeug Objekt initialisieren da ich dann meine Werte verlieren würde.
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:
| public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) {
}
private void button2_Click(object sender, EventArgs e) {
} }
class Zeug{ public int i; public int z;
public void doAwesomestuff() {
} } |
Ich würde mich über Antworten sehr freuen.
Tut mir leid dass ihr euch mit einem Anfänger wie mir herumschlagen müsst. :-(
Moderiert von
Th69: Titel geändert.
dark-destination1988 - Mo 01.08.11 13:23
zunächst Instanz der Klasse anlegen
(über public Form einfügen)
Zeug instanz erzeugen im Kontruktor des Forms;
C#-Quelltext
1: 2:
| InitializeComponent(); Zeug=new Zeug(); |
Dann kannst du werte zuweisen
C#-Quelltext
1: 2:
| instanz.i=5; instanz.z=4; |
schlussendlich kannst du deine Methode ausführen
C#-Quelltext
1:
| instanz.doAwesomestuff(); |
Moderiert von
Th69: C#-Tags hinzugefügt
Namenlosnameless - Mo 01.08.11 13:42
pixelport hat folgendes geschrieben : |
| Ich kann nicht in jeder Methode ein neues Zeug Objekt initianlisieren da ich dann meine Werte verlieren würde. |
Wenn du die Werte von Zeugs nicht verlieren willst, musst du die Klasse Zeug als
static definieren oder wie mein Vorredner bereits erwähnt hat eine Instanz der Zeug-Klasse im Konstrucktor der Forms-Klasse erzeugen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| public partial class Form1 : Form { Zeug Instanz=new Zeug();
public Form1() { InitializeComponent();
} private void button1_Click(object sender, EventArgs e) { Instanz.i=5 }
private void button2_Click(object sender, EventArgs e) { Instanz.z=4 Instanz.doAwesomestuff(); } |
Hoffe das hilft Dir! Ich weiß auus eigener leidvoller Erfahrung das die OOP am Anfang sehr schwer zu durchschauen ist, aber sobald mans geschnallt hat wirds angenehmer!
mfg Namenlosnameless
pixelport - Mo 01.08.11 13:50
Vielen Dank für die Schnelle Antwort :-)
Es funktioniert endlich!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!