在.Net3.0中新增了一个变量声明,它可以用var来声明任何类型局部变量,不过它只告诉编译器,该变量需要初始化表达来推断变量的类,并且只能是局部变量.
var i=2;等同于int i=2;
var name="Good";等同于string name="Good";
var numbers=new int[] {1,2,3};等同于int [] numbers=new int[] {1,2,3};
同时在使用var申明局部变量时,一定要赋值,因为声明依赖于赋值号右边的表达式,否则编译器会报错.
var name;
name="Netccb";//此时就会报错
使用var 申明局部变量后,它仍然是强类弄,不可以进行转换;
var number=19;
number="This is error!"//此时就会报错.
初始化表达式的编译期类型不可以是空(null),因为编译器无法从null来推断出局部变量的类型
var integer=null;//此地会报错.
初始化语句必须是一个表达式,初始化表达式不能包含它自身,但是可以是包含一个对象或集合初始化器的一个new表达式(即匿名类型)。
var coll = new Hashtable();
var的声明仅限于局部变量,也可以包含在foreach、for、using语句中.
class Program
{
private var i = 10; //全局私有变量。
static void Main(string[] args)
{ }
}
var i=2;等同于int i=2;
var name="Good";等同于string name="Good";
var numbers=new int[] {1,2,3};等同于int [] numbers=new int[] {1,2,3};
同时在使用var申明局部变量时,一定要赋值,因为声明依赖于赋值号右边的表达式,否则编译器会报错.
var name;
name="Netccb";//此时就会报错
使用var 申明局部变量后,它仍然是强类弄,不可以进行转换;
var number=19;
number="This is error!"//此时就会报错.
初始化表达式的编译期类型不可以是空(null),因为编译器无法从null来推断出局部变量的类型
var integer=null;//此地会报错.
初始化语句必须是一个表达式,初始化表达式不能包含它自身,但是可以是包含一个对象或集合初始化器的一个new表达式(即匿名类型)。
var coll = new Hashtable();
var的声明仅限于局部变量,也可以包含在foreach、for、using语句中.
class Program
{
private var i = 10; //全局私有变量。
static void Main(string[] args)
{ }
}
var userlist = new [] {"a","b","c"};
foreach(var user in userlist)
Console.WriteLine(user);

浙公网安备 33010602011771号