C#中变量的声明和初始化
C#编译器不允许使用未初始化的变量;简单的说,C#编译器需要某个初始值对变量进行初始化,之后才能在操作中引用该变量。
例如
int i; Console.WriteLine(i);
编译会报错:
error CS0165: Use of unassigned local variable ‘i‘
C#中可以在一行语句中声明并初始化变量:
int i = 0;
类型推断
C#中类型推断可使用 var 关键字声明变量:
var myVar = 10;
编译器可以根据变量的初始化值,推断出变量的类型。上面这句实际就会变成:
int myVar = 10;
变量的作用域
- 局部变量存在于声明该变量的块语句或方法内;
- 在for, while或类似语句中声明的局部变量存在于该循环体内;
注意,C#类级字段和局部变量:
using System; namespace Test { class Program { static int i = 20; static void Main() { int i = 30; Console.WriteLine(i); } } }
虽然在Main方法内,声明的两个i变量都可见,但不会有冲突。Main方法内的变量会隐藏类级别的变量,因此输出是 30;如果要访问类级别的变量,可以使用object.fieldName语法。
常量
常量是其值在使用过程中不会发生变化的变量,使用const关键字声明和初始化:
const int a = 100;