Effective C#笔记 - 优先使用隐式类型的局部变量

以前在使用局部变量的时候,代码规范规定必须用隐式类型,即var关键字,如

public int GetCount()
{
     //int count = 0;
     var count = 0; 
}

之前只是觉得这样可以省事很多,编译器就帮助我们做好了类型推断,也不会出错,并且Visual Studio也会提示使用var,而不是直接使用int之类。

后来接触的代码还有同事的使用方式及建议,比较倾向于使用明确的类型,即显式类型的声明局部变量的方式。只是我还是比较倾向于使用var,以前留下来的习惯了。

《Effective C#》第一条建议是优先使用隐式类型的局部变量,也更加让我清晰了如何使用隐式类型的局部变量,即使用var声明变量。对于根据函数签名以及变量的声明不能让代码的读者容易推断出变量的类型的时候,就应该使用显式类型局部变量,这样可以使得代码更适宜阅读和维护。反之,如果这些都很清晰,那么直接使用隐式的即可,省时省事。而同时,有些情况下,使用隐式类型让编译器推断出正确类型,会更好些。书中的例子是使用LINQ时,如果直接显式返回IEnumerable而不是IQueryable性能上会差一些,IQueryable对数据的查询做了优化,使用var来让编译器推断类型,反而获得了性能优势。

一种要避免使用var的情形是,数据的精度在隐式转换中造成误解和精度的损失,比如double转float,long转int等,此种类型尽量使用原始的显示类型。

使用var需要注意其中的适用情形,不能滥用,但是改用则用,前提是上下文清晰,也要利于阅读和维护。

你可能感兴趣的:(Effective C#笔记 - 优先使用隐式类型的局部变量)