优点& .net 3.5中的var数据类型的缺点

时间:2010-10-19 11:51:45

标签: c# keyword var

  

可能重复:
  Use of var keyword in C#
  Use of “var” type in variable declaration

大家好,

“Var键工作需要显式类型转换尽可能避免装箱和拆箱值类型。”

建议使用var关键字而不是显式数据类型吗?

2 个答案:

答案 0 :(得分:7)

来自ReSharper Horizons blog

  
      
  1. 它可以更好地命名局部变量。当您使用显式类型读取局部变量声明时,您将获得更多信息   那个时刻和“IUnitTestElement current”之类的东西是有道理的。   但是,当稍后使用此局部变量时,您会读到“当前”   这需要一些时间来弄清楚其含义。使用“var   currentElement“使其在任何地方都更容易阅读。

  2.   
  3. 它会产生更好的API。当你让编译器从方法返回类型或属性类型推导出类型时,你必须有好的类型   第一名。当你没有明确的类型时   初始化表达式,你必须有成员的最佳名称。

  4.   
  5. 它引发变量初始化。在声明和编译器需要初始化变量通常是一种很好的做法   初始化程序,用于推断使用“var”声明的局部变量的类型   关键字。

  6.   
  7. 删除代码噪音。有很多情况,当隐式键入本地将减少文本开发人员需要阅读的数量,或   而是跳过。从新对象表达式声明局部变量或   如果我们不使用“var”,则转换表达式需要指定类型两次。   使用泛型可能会导致许多其他冗余代码。   另一个例子是foreach中的迭代变量   字典。

  8.   
  9. 它不需要使用指令。对于var,你没有明确的类型引用,因为编译器会为你推断类型,所以你   当您需要临时变量时,不需要导入命名空间。

  10.   

缺点是代码可能性较差。例如线     int myInt = 0; 对于大多数人而言,仍然更为直截了当     var myInt = 0; 但这主要是由于我们多年来一直在研究的语法。

答案 1 :(得分:5)

var不是一种数据类型,它只是“让编译器推断 - 编译时推断 - 实际使用类型”的“语法糖”。

因此,您只需要了解以下类型的推论:

var x = 4; //int
var y = 4.0; //double
var z = 4M; //decimal
var w = (string)null; //string