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 * 整型的都返回021 * ushort 022 * ulong 023 * uint 024 * struct 整型的0,引用型的null25 * short 026 * sbyte 027 * long 028 * int 029 * float 0.0F30 * enum 枚举类型下标为0的元素31 * double 0.0D32 * decimal 0.0M33 * char '/0'34 * byte 035 * bool flase36 */37 /*38 从C#3.0开始,引入了var关键字,编译器可以通过它的初始值来判断具体类型.39 * 根据上面的综述,var只能用于局部变量的声明,不能用于字段级别的声明,并且var声明的变量必须要有初始值,这样编译器才能判断变量的类型.40 */41 }
新闻热点
疑难解答