变量的声明及初始化

 1 //声明变量的同时进行初始化
 2 int intVariable = 10;
 3 
 4 //先声明一个变量,然后再初始化
 5 string strVariable;
 6 strVariable = "Variable";
 7 
 8 //同时声明多个变量并初始化,其中变量的类型必须一致
 9 int intVarialbe1 = 10, intVariable2 = 20, intVariable3 = 30;
10 string strVariable1 = "Variable1", strVariable2 = "Variable2", strVariable3 = "Variable3";
11 

错误尝试:如果声明了变量而没有为其赋初始值,会出现什么情况呢?

2-1我们通过下边的代码进行测试

1 //声明变量,不进行初始化
2 int intVariable;
3 string strVariable;
4 
5 //引用未进行初始化的变量
6 Console.WriteLine(intVariable.ToString());
7 Console.WriteLine(strVariable);

代码下方出现波浪线,可以看到下图的错误提示:

 

图 2‑1 变量未赋初始值时的错误

 

编译时,错误列表中的错误提示:

 

图 2‑2 错误列表中的错误提示

为什么必须为声明的变量进行初始化呢?

例 2-1 中,由于在操作中引用了没有进行初始化的变量,而导致了错误的产生。变量的初始化是C#强调安全性的方式之一,C#编译器会将未初始化的变量当作错误看待,这可以防止我们无意的从其他程序遗留下来的内存中获取垃圾值。

为了防止使用未初始化的变量,导致问题的产生,C#通过两种方式来解决:

  • 方法中的局部变量必须在代码中显式初始化,如果编译器检测到局部变量在初始化之前就使用了它的值,就会产生错误。(需要强调的是,这里说的是局部变量)
  • 类或结构中的字段,不管是静态的还是非静态的,这些变量如果没有显式初始化,在调用其构造函数时,就为其设置了默认值(int、double、bool等值类型的变量初始化为它的默认值;数组、集合等引用类型的变量初始化为Null)。

表格 2‑1 值类型变量的默认值

变量类型

默认值

sbyte,byte,short,ushort,int,uint,long,ulong

0

char

'\0'

float

0.0f

double

0.0d

decimal

0M

bool

false

enum

0

posted @ 2017-06-07 11:33  CS讷于言而敏于行  阅读(2363)  评论(0编辑  收藏  举报