Laden...

Variablen in if deklarieren

Erstellt von olik vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.002 Views
Thema geschlossen
O
olik Themenstarter:in
12 Beiträge seit 2010
vor 13 Jahren
Variablen in if deklarieren

Hallo,

habe leider ewig nicht mehr mit C gearbeitet und weiß eifnach nicht, was ich hier falsch gemacht habe:

        
public void endpunkte(object sender, MouseEventArgs e) // aufruf beim klicken auf bild
        {
            if (!klick) // definition und eintrag der koordinaten von punkt 1 nach erstem klick
            {
                int[][] endpunkte = new int[2][];
                endpunkte[0] = new int[] { e.X * 2 - 1, e.Y * 2 - 1 };
                klick = true;
            }

            else if (klick) // eintrag der koordinaten von punkt 2 nach zweitem klick
            {
                endpunkte[1] = new int[] { e.X * 2 - 1, e.Y * 2 - 1 };
                klick = false;
                label1.Text = endpunkte[0][0] + endpunkte[0][1] + endpunkte[1][0] + endpunkte[1][1];
            }
        }

endpunkte[1] geht schon nicht, da endpunkte[][] bis dahin schon wieder weg ist. Wie müsste ich hier korrekt vorgehen?

Danke!

1.002 Beiträge seit 2007
vor 13 Jahren

Hallo olik,

du musst die Variable endpunkte außerhalb des if-Blocks deklarieren.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

O
olik Themenstarter:in
12 Beiträge seit 2010
vor 13 Jahren

Danke!

Dachte ich mir fast, aber dann wird diese beim zweiten Aufruf (zweiter Klick) doch erneut deklariert und "resettet", oder? Es soll ja die erste Zeile erhalten bleiben und nur die zweite ergänzt werden.

Edit:
Aaaah, ich glaube, der Fehler ist, dass die Funktion den gleichen Namen hat...

Edit2:
So klappt es nun:

        int[][] endpunkt = new int[2][];
        public void endpunkte(object sender, MouseEventArgs e) // aufruf beim klicken auf bild
        {
            
            if (!klick) // definition und eintrag der koordinaten von punkt 1 nach erstem klick
            {
                endpunkt[0] = new int[] { e.X * 2 - 1, e.Y * 2 - 1 };
                klick = true;
            }

            else if (klick) // definition und eintrag der koordinaten von punkt 1 nach erstem klick
            {
                endpunkt[1] = new int[] { e.X * 2 - 1, e.Y * 2 - 1 };
                klick = false;
                label1.Text = endpunkt[0][0] + endpunkt[0][1] + endpunkt[1][0] + endpunkt[1][1];
            }

            
        }

Danke!

Thema geschlossen