Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Variablen in if deklarieren
olik
myCSharp.de - Member



Dabei seit:
Beiträge: 17

Themenstarter:

Variablen in if deklarieren

beantworten | zitieren | melden

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!
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
olik
myCSharp.de - Member



Dabei seit:
Beiträge: 17

Themenstarter:

beantworten | zitieren | melden

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!
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von olik am .
private Nachricht | Beiträge des Benutzers