原文链接:http://blog.csdn.net/allenjy123/article/details/7228964
var概述
var关键字是C#3.0开始新增的特性,称为推断类型(弱类型)。由var声明的变量,编译器会根据上下文来判断你到底是想用什么类型。
我们可以赋予局部变量推断类型var而不是显式类型。var 关键字指示编译器根据初始化语句右侧的表达式推断变量的类型。推断类型可以是内置类型、匿名类型、用户定义类型、.NET Framework 类库中定义的类型或任何表达式。
示例:原先定义变量,是要这样: 数据类型 变量名 = 值, 如:
int a = 1; string b ="2";
也就是说,必须先明确地指定你的变量是什么数据类型,才能给它赋值。
现在在C# 3.0里,有了变化,就是可以不用像上面那样定义变量了。如:
var a =1 ;
IDE或编译器会根据你给a赋的值1,来”推论”出a是一个整数类型。同理:
var b ="2";
因为给b赋的值是”2”这样一个字符串,所以,b就是string类型。
当你无法确定要用到的变量是什么类型,就可以使用var。用var声明变量和用具体的数据类型声明变量,效率一样,但都比Object效率高。
var特点
- 必须在定义时初始化。也就是必须是var s = “abcd”形式,而不能是如下形式:
var s;
s = “abcd”;
- 一但初始化完成,就不能再给变量赋与初始化值类型不同的值了。
- var只能用来声明局部变量。
- 使用var定义变量和object不同,它在效率上和使用强类型方式定义变量完全一样。
var优缺点
优点:
- 它有利于更好地为本地变量命名。
- 它有利于设计更好的API。
- 它促使对变量进行初始化。
- 它消除了代码的混乱。
- 它不需要using指示符。
缺点:降低代码的可读性。
使用建议
过度使用var会使得源代码难以理解。只有在必要的时候,才推荐使用var,如:当变量用来存储一个匿名类型或者匿名类型集合的时候。
参考文章:var争论、效率展示、[MSDN中文参考]