我正在尝试在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.