1 class MyVar {
2 /*
3 * 基于安全的考虑,c#变量的初始化有一定的要求
4 * 1.所有的局部变量在被显示的初始化之前,都会被编译器当作未初始化,然后抛出编译期出错;
5 * 2.所有的字段级变量被编译器初始化为所属类型中等价于0的值.如布尔型的初始化为false,数值型的初始化为
6 或者0.0,所有引用类型都初始化为null.
7 * */
8 private string Name;
9 public void SaySomthing() {
10 string info;
11 Console.WriteLine(info);
12 }
13 /*
14 * 上面的代码中,Name是字段级变量,info是局部变量
15 * 在编译的时候就会报错.(使用了未赋值的info)
16 * 因为局部变量在使用时是必须要赋值的,而字段级的变量可以被编译器自动初始化. *
17 */
18 /*
19 * 各种数据类型的默认值
20 * 整型的都返回0
21 * ushort 0
22 * ulong 0
23 * uint 0
24 * struct 整型的0,引用型的null
25 * short 0
26 * sbyte 0
27 * long 0
28 * int 0
29 * float 0.0F
30 * enum 枚举类型下标为0的元素
31 * double 0.0D
32 * decimal 0.0M
33 * char '\0'
34 * byte 0
35 * bool flase
36 */
37 /*
38 从C#3.0开始,引入了var关键字,编译器可以通过它的初始值来判断具体类型.
39 * 根据上面的综述,var只能用于局部变量的声明,不能用于字段级别的声明,并且var声明的变量必须要有初始值,这样编译器才能判断变量的类型.
40 */
41 }