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

可能重复:
在C#中使用var关键字
在变量声明中使用“var”类型

大家好,

“var keywork需要明确地进行类型转换尽可能避免装箱和拆箱值类型。”

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


来自ReSharper Horizo​​ns博客:

  • 它为局部变量提供了更好的命名。 当你使用显式类型读取局部变量声明时,在那个时候你有更多的信息,并且像“IUnitTestElement current”这样的东西是有意义的。 但是,稍后使用此局部变量时,您会看到“当前”,这需要一些时间才能找出含义。 使用“var currentElement”可以更容易在任何地方阅读。

  • 它诱导更好的API。 当让编译器从方法返回类型或属性类型中推导出类型时,首先必须具有良好的类型。 如果在初始化表达式中没有显式类型,则必须为成员指定最佳名称。

  • 它引发了变量初始化。 在声明中初始化变量通常是一种很好的做法,编译器需要初始化器来推断用“var”关键字声明的局部变量的类型。

  • 它消除了代码噪音。 有很多情况下,当隐式类型本地会减少开发人员需要阅读的文本的数量,或者跳过。 如果我们不使用“var”,则从新对象表达式或转换表达式声明局部变量需要指定两次类型。 使用泛型会导致很多其他冗余代码。 另一个例子是在Dictionary上的foreach中的迭代变量。

  • 它不需要使用指令。 使用var,你没有明确的类型引用,因为编译器为你推断输入类型,所以当你需要一个临时变量时你不需要导入命名空间。

  • 缺点是可读性较差的代码。 例如,行int myInt = 0;var myInt = 0;更直接var myInt = 0; 但这主要是由于我们多年来一直在研究的语法。


    var不是一种数据类型,它仅仅是“let-the-compiler-infer-at-compile-time-what-actual-type-to-use”的“语法糖”。

    所以,你只需要了解以下类型的推论:

    var x = 4; //int
    var y = 4.0; //double
    var z = 4M; //decimal
    var w = (string)null; //string
    
    链接地址: http://www.djcxy.com/p/53811.html

    上一篇: Pros & Cons of var datatype in .net 3.5

    下一篇: Why C# Need Integral Types already it has "Var" keyword?