不要以为我可以更新编码,所以请原谅我要问的问题。
我正在编写一个程序,让用户输入所需数量的随机数,由Random via textBox生成(假设15 - >你得到15个随机数),范围从1到1000。
当按下按钮A时,这些随机数字将保存在Zahlenarray []( - >中,在文本框中输入数字的长度)并显示在label1.Text中。
然后有一个按钮B,点击后,应该通过bubblesort对Zahlenarray []中的Numbers进行排序,并在label2中显示它们。
我的问题是,现在第二个方法(按钮B_Click)没有来自按钮A_Click方法的Zahlenarray的内容。
我想通过参数通过ref传递这些数据,但摆弄public void(Object sender,EventArgs e)似乎让我遇到了大麻烦。
我可以在EventArgs 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";
}
}
答案 0 :(得分:1)
将您的数组声明放在buttona单击处理程序之外,以便在按钮b处理程序中引用它。
int[] Zahlenarray;
public void Button_Anzeigen_Click(Object sender, EventArgs e)
{
label1.Text = "";
Zahlenarray = new int[Int32.Parse(textBox1.Text)];
...
}