C#变量初始化
在C#中声明变量使用下述语法:
datatype identifier;,
例如:
int i;
该语句声明int变量i。编译器不允许在表达式中使用这个变量,除非用一个值初始化了改变量。如果你不需要使用它,之声明不初始化也可以。
变量的初始化
变量的初始化是C#强调安全性的另一个例子。简单地说,编译器需要用某个初始值对变量进行初始化,之后才能在操作中引用该变量。大多数现代编译器把没有初始化标记为警告,但C#编译器把它当作错误来对待。这就可以防止我们无意中从其他程序遗留下来的内存中获取垃圾值。
C#有两个方法可确保变量在使用前进行了初始化:
- 变量是类或结构中的字段,如果没有显式初始化,创建这些变量时,其默认值就是0
- 方法的局部变量必须在代码中显式初始化,之后才能在语句中使用它们的值。此时,初始化不是在声明该变量时进行的,但编译器会通过方法检查所有可能的路径,如果检测到局部变量在初始化之前它的值,就会产生错误。
在C#中实例化一个引用对象需要使用new关键字。
变量初始化需遵循的规则:
- 变量必须初始化。否则,编译器就没有推断变量类型的依据。
- 初始化器不能为空。
- 初始化器必须放在表达式中。
- 不能把初始化器设置为一个对象,除非在初始化器中创建了一个新对象。
初始化器是C#3.0的一个新特征。在这里先不细说。先给一个简单的例子展示。
引用类型变量Student如下:
public class Student{
public int Id{get;set;}
public string Name {get;set;}
public string Sex {get;set;}
public int Age {get;set;}
}
Student实例初始化器如下:
Student stu=new Student{Id=1,Name="张三",Sex="男",Age=50};
原来的对象初始化都要进行先创建构造方法,然后才能进行成员的相关操作,C#3.0 提供了对象成员的直接初始化的能力,和初始化一个集合或者是数组一样来初始化对象。