转换输入框
本文关键字:输入 转换 | 更新日期: 2023-09-27 18:32:42
我正在尝试将输入框转换为 Int32,但它不起作用,有人知道如何解决这个问题吗?
private void button1_Click(object sender, EventArgs e)
{
int[] tab = null;
for (int i = 0; i < numericUpDown1.Value; ++i)
{
tab[i] = Convert.ToInt32(Interaction.InputBox("Value", "Array"));
// Error here
}
textBox1.Text = "Plus petit: " + Smaller(tab).ToString();
//textBox1.Text = "Plus grand: " + result.ToString();
}
private int Smaller(int[] array)
{
var result = array[0];
foreach (int tabs in array)
{
if (result > tabs)
{
result = tabs;
}
}
return result;
}
错误:
Object reference not set to an instance of an object.
您没有初始化数组。将int[] tab = null;
更改为int[] tab = new int[numericUpDown1.Value];
如果不初始化数组,它将保持 null,因此tab[i]
始终为 null。方括号中的值将告诉编译器您的数组有多大。
想知道或者您只是不关心,您可能需要使用List<T
>:
private void button1_Click(object sender, EventArgs e)
{
List<int> tab = new List<int>();
for (int i = 0; i < numericUpDown1.Value; ++i)
{
tab.Add(Convert.ToInt32(Interaction.InputBox("Value", "Array")));
// Error here
}
textBox1.Text = "Plus petit: " + Smaller(tab).ToString();
//textBox1.Text = "Plus grand: " + result.ToString();
}
private int Smaller(List<int> list)
{
var result = list[0];
foreach (int tabs in list)
{
if (result > tabs)
{
result = tabs;
}
}
return result;
}
//编辑:如果您想为自己节省一些代码,并且只想从该列表中获得最小的 int 值,请使用
textBox1.Text = "Plus petit: " + tab.Min().ToString();
In button1_Click()
tab
为空,因此无法分配给tab[i]
。你应该先做tab = new int[numericUpDown1.Value];