2016-11-18 5 views
-6

Ich habe den folgenden Code:Ändern globale Variable in einer Methode

namespace WindowsFormsApplication1 
{ 
    public static int lb1; 

    public partial class Form1 : Form 
    { 
     private void button1_Click(object sender, EventArgs e) 
     { 
      int lb1 = 1; 
     } 
    } 
} 

Mein Problem ist, dass ich die lb1 Variable ändern möchten, wenn ich button1 klicken, aber jedes Mal wenn ich laufe das Programm, dessen Lauf „0“ ist, nicht "1".

Was ist los mit dem, was ich mache?

+0

Sie sind nicht auf die globale Zuordnung, sind Sie die Variable neu zu erstellen. –

+0

Sie haben zwei verschiedene Variablen. –

+0

Oh wirklich, also Was soll ich eigentlich machen? – Kovboy

Antwort

0

Sie deklarieren eine neue lokale Variable in der Methode button1_Click.

private void button1_Click(object sender, EventArgs e) 
    { 
     lb1 = 1; 
    } 

ist, was Sie suchen.

+0

Vielen Dank für Ihre Antwort. – Kovboy

0

Sie sollten Ihre Variable in Ihrer Klasse setzen

Sie nicht globale Variablen wie in c erstellen ++

Und Sie sollten int vor lb1 = 1;

Like this

public partial class Form1 : Form 
    { 
     public static int lb1; 

     private void button1_Click(object sender, EventArgs e) 
     { 
      lb1 = 1; 
     } 
    } 
+0

Vielen Dank für Ihre Antwort. – Kovboy

2

entfernen Dies ist:

Ist das nicht die gleiche Variable wie folgt aus:

public static int lb1; 

Im ersten Fall, dass Sie eine NEW lokale Variable instanziiert, (obwohl sie den gleichen Namen hat) und es existiert nur innerhalb der Rahmen des Verfahrens !

Wenn Sie die static Variable innerhalb der Methode zugreifen möchten benutzen Sie einfach den Namen des Restaurants:

private void button1_Click(object sender, EventArgs e) 
{ 
    lb1 = 1; 
} 

nicht int vor ihm schreiben Sie, denn durch so tun Sie eine brandneue Variable machen. Änderungen daran haben keinen Einfluss auf die Klassenvariable static.

ich den größten Fehler fast beaufsichtigte, haben Sie die Variable in der Klasse zu deklarieren:

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public static int lb1; 

     private void button1_Click(object sender, EventArgs e) 
     { 
      lb1 = 1; 
     } 
    } 
} 
+0

Vielen Dank für Ihre Antwort. – Kovboy