可能重复:
Use of var keyword in C#
Use of “var” type in variable declaration
大家好,
“Var键工作需要显式类型转换尽可能避免装箱和拆箱值类型。”
建议使用var关键字而不是显式数据类型吗?
答案 0 :(得分:7)
它可以更好地命名局部变量。当您使用显式类型读取局部变量声明时,您将获得更多信息 那个时刻和“IUnitTestElement current”之类的东西是有道理的。 但是,当稍后使用此局部变量时,您会读到“当前” 这需要一些时间来弄清楚其含义。使用“var currentElement“使其在任何地方都更容易阅读。
它会产生更好的API。当你让编译器从方法返回类型或属性类型推导出类型时,你必须有好的类型 第一名。当你没有明确的类型时 初始化表达式,你必须有成员的最佳名称。
它引发变量初始化。在声明和编译器需要初始化变量通常是一种很好的做法 初始化程序,用于推断使用“var”声明的局部变量的类型 关键字。
删除代码噪音。有很多情况,当隐式键入本地将减少文本开发人员需要阅读的数量,或 而是跳过。从新对象表达式声明局部变量或 如果我们不使用“var”,则转换表达式需要指定类型两次。 使用泛型可能会导致许多其他冗余代码。 另一个例子是foreach中的迭代变量 字典。
- 醇>
它不需要使用指令。对于var,你没有明确的类型引用,因为编译器会为你推断类型,所以你 当您需要临时变量时,不需要导入命名空间。
缺点是代码可能性较差。例如线
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