初始值
在c#中,一个局部变量必须先经过手动赋值初始值后才能使用。
而成员变量,可以不手动赋值初始值。此时他们会以默认值存在。
default
default关键字可以帮你创建这种类型的默认值。
你可以在他右边加括号指示要使用哪一种类型的默认值。
如果赋值时的类型明确,那么可以省略,只写一个default。
var i1 = default(int);
int i2 = default;
数组的元素是成员变量,是具有初始值的。
各种类型的默认值。
- 所有数值类型,他们的默认值是数字0的情形。
- byte,short,int,long,float,double等等数字,相当于为他们赋值为0
- bool类型,他的0情形是false
- char,是一个字符编码为0的字符。
- 其他值类型
- 任何枚举,是他绑定数字类型为0的情形。
请注意在枚举中,可能不包含绑定为0的枚举。但他的默认值依然是0。 - 任何结构类型,是把他所有字段设置为default。
请注意,结构虽然有默认无参构造器,但通过default不会经过这个构造器。 - 可为null值类型,可为null值类型是一个泛型结构类型。他里面有一个bool:HasValue。用来指示当前是否有值。
和一个Value字段,用于在有值的时候储存真正的值。默认值会将这两个东西设为default。相当于为null的情形。
- 任何枚举,是他绑定数字类型为0的情形。
- 引用类型
任何引用类型的默认值都是null。包括string,或其他数组。
所以声明数组的数组时,应当先对他们进行初始化。
int[][] arr = new int[6][];
for (int i = 0; i < arr.Length; i++)
{arr[i] = new int[6];
}arr[2][3] = 12;