Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从一个单击方法到另一个单击方法获取数组数据_C#_Winforms_Methods_Scope - Fatal编程技术网

C# 如何从一个单击方法到另一个单击方法获取数组数据

C# 如何从一个单击方法到另一个单击方法获取数组数据,c#,winforms,methods,scope,C#,Winforms,Methods,Scope,我不认为我会更新编码,所以请原谅我将要问的问题 我目前正在编写一个程序,允许用户通过文本框输入随机生成的所需数量的随机数(假设15-->您得到15个随机数),范围从1到1000 按下按钮A时,这些随机数字将保存在Zahlenarray[](->文本框中输入数字的长度)中,并显示在label1.Text中 然后有一个按钮B,单击该按钮时,应通过bubblesort对Zahlenarray[]中的数字进行排序,并将其显示在label2中 我现在的问题是,第二种方法(Button B_Click)没有

我不认为我会更新编码,所以请原谅我将要问的问题

我目前正在编写一个程序,允许用户通过文本框输入随机生成的所需数量的随机数(假设15-->您得到15个随机数),范围从1到1000

按下按钮A时,这些随机数字将保存在Zahlenarray[](->文本框中输入数字的长度)中,并显示在label1.Text中

然后有一个按钮B,单击该按钮时,应通过bubblesort对Zahlenarray[]中的数字进行排序,并将其显示在label2中

我现在的问题是,第二种方法(Button B_Click)没有Button A_Click方法中的Zahlenarray内容

我想通过参数通过ref传递这个数据,但是摆弄public void(objectsender,EventArgs e)似乎让我陷入了大麻烦

我可以在事件args e…之后添加参数吗。。。还是我错过了从这个“范围”中获取数据的另一种方法(希望这是正确的词)

两个方法都在同一个类中

按钮A的部分代码:

public void Button_Anzeigen_Click(Object sender, EventArgs e)
        {            
            label1.Text = "";            
            int[] Zahlenarray = new int[Int32.Parse(textBox1.Text)];
按钮B的所有内容:

private void Button_Sortieren_Click(object sender, EventArgs e)
{
    label2.Text = "";
    label3.Text = "";
    int Speicher;

    for (int n = Zahlenarray.Length; n > 0; n--)
    {
        for (int i = 0; i < n-1; i++)
        {


            if (Zahlenarray[i] > Zahlenarray[i + 1])
            {
                Speicher = Zahlenarray[i];
                Zahlenarray[i] = Zahlenarray[i + 1];
                Zahlenarray[i + 1] = Speicher;
                Speicher = 0;
            }
        }
    }


    foreach (int i in Zahlenarray)
    {
        label2.Text += i + "   ";

        if ((i % 9 == 0) && !(i == 0))
            label2.Text += "\n";
    }

}
private void按钮\u Sortieren\u单击(对象发送者,事件参数e)
{
标签2.Text=“”;
标签3.Text=“”;
内斯皮彻;
对于(int n=Zahlenarray.Length;n>0;n--)
{
对于(int i=0;iZahlenarray[i+1])
{
Speicher=Zahlenarray[i];
Zahlenarray[i]=Zahlenarray[i+1];
Zahlenarray[i+1]=Speicher;
Speicher=0;
}
}
}
foreach(扎勒纳雷国际酒店)
{
标签2.Text+=i+“”;
如果((i%9==0)和&!(i==0))
标签2.Text+=“\n”;
}
}

将数组声明放在buttona单击处理程序的外部,以便在ButtonB处理程序中引用它

int[] Zahlenarray;
public void Button_Anzeigen_Click(Object sender, EventArgs e)
    {            
        label1.Text = "";            
        Zahlenarray = new int[Int32.Parse(textBox1.Text)];
        ...
    }

这给了我一个NullreferenceException,当Button2在这里尝试循环时:for(int n=Zahlenarray.Length;n>0;n--)@Flauschkatze仔细看,你可能会得到这个异常,因为你必须在处理程序中声明并初始化另一个Zahlenarray…buttonB处理程序正在循环通过类作用域的一个…int[]扎勒纳雷;是我为班级设置的所有代码(如上面的海报所示)。提到的for循环是Zahlenarray[]在B方法中的第一次遭遇。是的,但首先处理buttonA,您是否这样做了-Zahlenarray=new int[Int32.Parse(textBox1.Text)];或者这个-int[]Zahlenarray=newint[Int32.Parse(textBox1.Text)]?在buttonA中…这就是为什么在buttonB处理程序中会出现异常…在buttonA中更改为这个Zahlenarray=newint[Int32.Parse(textBox1.Text)];