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