public int[] kdPegawai;
if (Convert.ToInt16(comboBoxJumlahPegawai.Text) == 4)
{
kdPegawai[1] = new int[] { Convert.ToInt16(comboBoxKdPegawai.Text) };
}
我需要将组合框中的值放到kdPegawai数组中,但不断出现这样的错误:
无法将int []隐式转换为int
答案 0 :(得分:3)
您无法将整个数组分配给另一个数组中的单个值(除非它是2D数组)。
所以这一行应改为:
kdPegawai[1] = Convert.ToInt16(comboBoxKdPegawai.Text);
你必须在为数组赋值之前初始化数组。
如果你只想插入一个像你在代码中看到的那样的值,那么你也可以这样做:
kdPegawai = new int[] { Convert.ToInt16(comboBoxKdPegawai.Text) };
答案 1 :(得分:1)
数组值赋值错误
public int[] kdPegawai = new int[1];
if (Convert.ToInt16(comboBoxJumlahPegawai.Text) == 4)
{
kdPegawai[0] = Convert.ToInt16(comboBoxKdPegawai.Text) ;
}
答案 2 :(得分:0)
如果要创建包含单个项目的数组,请尝试以下方法:
public int[] kdPegawai;
if (Convert.ToInt16(comboBoxJumlahPegawai.Text) == 4)
{
kdPegawai = new int[] { Convert.ToInt16(comboBoxKdPegawai.Text) };
}
回想一下,kdPegawai[1] = ...
意味着您正在尝试将某些内容分配给数组的第二项,(我假设)并不是您在此尝试做的事情。还记得数组的第二项是整数,而不是整数数组(因此错误)。
在大多数情况下,单项数组是没有意义的(除非您正在进行需要传递数组或类似内容的库调用)。如果它只是一个项目,请考虑使用int
。
或者,您可以提前初始化数组并执行以下操作:
kdPegawai[0] = Convert.ToInt16(comboBoxKdPegawai.Text);
重要说明: array[1]
是数组中第二个项,不是第一项。数组中的第一项是array[0]
。
答案 3 :(得分:0)
错误消息足够清楚,它提醒您正在尝试将整数数组分配给整数变量。在这里我们可以看到kdPegawai
是一个整数数组,因此有效索引处的任何值都是整数(kdPegawai[0]
),并且您正在尝试将整数数组分配给导致错误的整数数组。为什么转换太多了?为什么不这样做呢?
public int[] kdPegawai;
int intPegawai = 0;
if (int.TryParse(comboBoxJumlahPegawai.Text, out intPegawai) && intPegawai == 4)
{
kdPegawai = new int[] { intPegawai };
}
我仍然很困惑这里有什么需要数组,因为你正在处理单个值?为什么不继续intPegawai