c#中关于变量声明那么点事

 

 

 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     }

 

posted @ 2014-04-14 14:53  思思博士  阅读(919)  评论(0编辑  收藏  举报