我正在尝试在C#中创建一个动态数组,但是我收到一条恼人的错误消息.这是我的代码:
private void Form1_Load(object sender,EventArgs e) { int[] dataArray; Random random = new Random(); for (int i = 0; i < random.Next(1,10); i++) { dataArray[i] = random.Next(1,1000); } }
而错误:
Use of unassigned local variable 'dataArray'
这让我大吃一惊.我来自VB,所以请我温柔,哈哈.
干杯.
解决方法
你还没有创建数组 – 你已经声明了变量,但没有给它一个值.
请注意,数组始终具有固定大小.如果您想要一个可以继续添加的数据结构,则应使用List< T>.但是,我建议一次计算大小,而不是通过循环进行每次迭代.例如:
private void Form1_Load(object sender,EventArgs e) { List<T> dataArray = new List<T>(); Random random = new Random(); int size = random.Next(1,10); for (int i = 0; i < size; i++) { dataArray.Add(random.Next(1,1000)); } }
当然,如果你事先计算出尺寸,你可以使用一个数组:
private void Form1_Load(object sender,EventArgs e) { Random random = new Random(); int size = random.Next(1,10); int[] dataArray = new int[size]; for (int i = 0; i < size; i++) { dataArray[i] = random.Next(1,1000); } }
…但请注意,数组是considered somewhat harmful.