C#变量的声明和初始化(转)
C#变量初始化是C#强调安全性的另⼀个例⼦。简单地说,C#编译器需要⽤某个初始值对变量进⾏初始化,之后才能在操作中引⽤该变量。⼤多数现代编译器把没有初始化标记为警告,但C#编译器把它当作错误来看待。
1.在C#中,变量的声明格式为:
  数据类型变量名;
2.变量的赋值格式为:
  变量名 = 数据;
3.⼀般情况下,都是先声明后赋值,或者在声明变量的同时就赋初值。然⽽有些时候在程序的开发设计中,往往忘了要赋初值(即进⾏初始化),这样就会导致在程序的设计中,会出现意想不到的错误。
解释:当我们在声明⼀个变量的时候,此时会进⾏内存分配(⽐如int i;此时会在堆栈上分配4个字节),也就是在进⾏变量声明时会进⾏内存的分配,以保存该类型对应的值。⾄于我们声明⼀个变量后不进⾏赋值便使⽤,此时是编译器会报错,错误提⽰是:使⽤了⼀个未赋值的变量。在.NET中有⼀个概念应该是⼤家都很熟悉的,那就是类型安全。何为类型安全,这个提问应该说是个最好的例证。如果有注意,
在.NET编译器中,对未赋值的变量进⾏使⽤的时候,编译器会提⽰这是个错误,⽽在其他语⾔编译器中对未赋值变量的使⽤提⽰的是警告。
4.C#中使⽤两种⽅式保证类型安全:
1)变量是类或者结构中的字段,如果没有进⾏显⽰赋值,在默认状态下创建相应变量时,其值为对应类型默认值。
2)⽅法的局部变量必须在代码中显⽰初始化,之后才可以在语句中进⾏使⽤。初始化不是在声明变量时进⾏的,编译器会通过检查所有可能的路径,如果检测到局部变量在初始化之前就使⽤了它的值,编译器就会产⽣错误。
1public static void Main()
2 {
3int a;
编译器错误4    Console.WriteLine(a);
5return;
6 }
以上代码在编译器中报:Use of unassigned local variable 'd'  (使⽤了未赋值的局部变量“a”)。
虽然这种保护机制让⼈很烦,不过为了养成良好的变成习惯,还是应该使⽤变脸的时候,要在声明变量的同时进⾏初始化,以免给⾃⼰带来不必要的⿇烦。