该不该在C#中使用var关键词

作为一个并不勤快的程序猿,在项目开发过程中总是想尽办法少写代码,对var关键词的使用自然不会放过,几乎在每个能使用var的地方都用了var,对此,很多朋友同事给出了不同的建议,觉得能不使用var关键词就不用,主要理由有这么几点:使用var申明的变量类型并不明确,会降低程序的可读性并且增加了不确定性;为了保持代码风格的统一,减少var关键词的使用,跟以前的代码保持一致性。

这些理由当然不可否认其合理性,但是对我来说,我更在意使用var关键词能给我带来什么好处,是否真的能够达到偷懒的目的,总结了下使用var的使用心得,好处主要体现在以下几个方面:

首先,使用var关键词减少了代码的长度,尤其是在申明诸如TestClass<T,T>这种泛型变量时,可以少敲长长一坨的类型名,所带来的代价是,你不得不使用visual studio这种高级ide来查看它的类型;

其次,在一定程度上降低了代码对类型的“耦合”,比如当你的某个方法Foo()返回了一个List<ClassA>的,你再申明一个List<ClassA>的变量foo去接收然后遍历它,你可能会写

List<ClassA) foo = Foo();
foreach(A item in foo)
{
  some code...
}

但是由于各种原因,Foo()的返回值类型被改成了MyList<ClassB>,这样你不得不去找到foo的定义,把它申明成MyList<ClasB>,再修改item的类型的ClassB,而如果你用了var关键词,那你只需要做很少的改动,甚至不用改动一行代码

var foo = Foo();
foreach(var item in foo)
{
some code...
}

另外,使用var关键词可以在一定程度上减少考虑各种类型相关和类型转换之类的问题,在开发过程中可以更专注于所要解决的问题本身,增加了开发的灵活性,就像C++程序员面对各种指针及内存问题,不得不在开发过程中绞尽脑汁对付他们,如果有一天这些问题全都消失,相信开发过程将变得更加有效和愉快;

当然,使用var关键词或者不使用var关键词,地球还是照样转,程序猿该干嘛还是干嘛,一切取决于个人的喜好,对于我个人来说,既然var关键词有这些好处,为什么不继续用它呢。

(原创文章,转载请注明作者schbook:seekerxu@163.com)

上一篇:CA*Layer(CATransformLayer--CAGradientLayer)


下一篇:Visual Studio(VS2012) Project&(Solution) 虚拟文件夹 & 物理文件夹