Autor Beitrag
pixelport
Hält's aus hier
Beiträge: 13
Erhaltene Danke: 3



BeitragVerfasst: Mo 01.08.11 13:10 
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.
ausblenden 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 user profile iconTh69: Titel geändert.
dark-destination1988
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178
Erhaltene Danke: 21



BeitragVerfasst: Mo 01.08.11 13:23 
zunächst Instanz der Klasse anlegen
(über public Form einfügen)

Zeug instanz erzeugen im Kontruktor des Forms;
ausblenden C#-Quelltext
1:
2:
InitializeComponent();
Zeug=new Zeug();

Dann kannst du werte zuweisen
ausblenden C#-Quelltext
1:
2:
instanz.i=5;
instanz.z=4;

schlussendlich kannst du deine Methode ausführen
ausblenden C#-Quelltext
1:
instanz.doAwesomestuff();					


Moderiert von user profile iconTh69: C#-Tags hinzugefügt

Für diesen Beitrag haben gedankt: pixelport
Namenlosnameless
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 259
Erhaltene Danke: 6

Windows XP Home Edition, Windos Vista
C#
BeitragVerfasst: Mo 01.08.11 13:42 
user profile iconpixelport hat folgendes geschrieben Zum zitierten Posting springen:
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:
ausblenden 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

_________________
1:<<Life sucks!!>> 2:<< Well okay>> 1: <<Just Yours>> 2:<<Ohmph>>

Für diesen Beitrag haben gedankt: pixelport
pixelport Threadstarter
Hält's aus hier
Beiträge: 13
Erhaltene Danke: 3



BeitragVerfasst: Mo 01.08.11 13:50 
Vielen Dank für die Schnelle Antwort :-)
Es funktioniert endlich!