2.1 变量的声明及初始化

Posted CS讷于言而敏于行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.1 变量的声明及初始化相关的知识,希望对你有一定的参考价值。

 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

以上是关于2.1 变量的声明及初始化的主要内容,如果未能解决你的问题,请参考以下文章

Java编程进阶常量变量及作用域

GoLang学习之变量定义和初始化

Java 29190917

Java 语法篇Java 变量八种基本数据类型及转换详解

07结构体.

变量声明置顶规则函数声明及函数表达式和函数的arguments属性初始化