使用本地未分配的变量 C#
use of local unassigned variable C#
我有一个问题我不明白(可能很容易解决)。
int[] numbers;
numbers[0] = 0;
当我调试时,第二行出现错误:
"use of unassigned local variable"
我该如何摆脱它?
你应该先create/initialize一个数组length/size。
int[] numbers = new int[lenghtOfArray];
其中 lengthOfArray
是一个整数,表示数组的 length/size。
然后您可以使用它们的索引访问数组的项目,就像您在此处所做的那样:
numbers[0] = 0;
将数字 0 设置为数组中的第一项,在索引为 0 的位置。
局部变量 没有给定默认值,必须在读取之前进行初始化,并且编译器正在抱怨,因为您正在使用未分配的局部变量。
然而,您的代码的真正问题是数组在使用前必须 created/instantiated。
您可以像创建任何其他对象一样创建它(这里我们将创建一个包含 11 个元素的数组):
int[] numbers = new int[11];
数组也是一个 Object
,因此 numbers
是一个 对 对象的引用,必须实例化才能使用。
访问前需要先创建对象
当你说 int[] numbers;
时,它只是创建一个可以容纳真实数组的引用。所以这里 'number' 是一个可以容纳 int 数组的引用。
为了use/access它,您需要通过new
关键字创建对象。
那会分配它的内存。
所以为了使用它,你需要这样做:int[] numbers = new int[10];
我有一个问题我不明白(可能很容易解决)。
int[] numbers;
numbers[0] = 0;
当我调试时,第二行出现错误:
"use of unassigned local variable"
我该如何摆脱它?
你应该先create/initialize一个数组length/size。
int[] numbers = new int[lenghtOfArray];
其中 lengthOfArray
是一个整数,表示数组的 length/size。
然后您可以使用它们的索引访问数组的项目,就像您在此处所做的那样:
numbers[0] = 0;
将数字 0 设置为数组中的第一项,在索引为 0 的位置。
局部变量 没有给定默认值,必须在读取之前进行初始化,并且编译器正在抱怨,因为您正在使用未分配的局部变量。
然而,您的代码的真正问题是数组在使用前必须 created/instantiated。
您可以像创建任何其他对象一样创建它(这里我们将创建一个包含 11 个元素的数组):
int[] numbers = new int[11];
数组也是一个 Object
,因此 numbers
是一个 对 对象的引用,必须实例化才能使用。
访问前需要先创建对象
当你说 int[] numbers;
时,它只是创建一个可以容纳真实数组的引用。所以这里 'number' 是一个可以容纳 int 数组的引用。
为了use/access它,您需要通过new
关键字创建对象。
那会分配它的内存。
所以为了使用它,你需要这样做:int[] numbers = new int[10];