当前位置: 代码迷 >> 综合 >> 第1条:优先使用隐式类型的局部变量
  详细解决方案

第1条:优先使用隐式类型的局部变量

热度:85   发布时间:2024-02-21 17:52:56.0

隐式类型的局部变量是为了支持匿名类型机制而加入C#语言的。使用var来声明隐式类型的局部变量,编译器会自动选择合适的类型。局部变量的类型推断机制并不影响C#的静态类型检查,局部变量的类型推断不等于动态类型检查,用var来声明的变量不是动态变量,它的类型会根据赋值符号右侧那个值的类型来确定。var的意义在于,你不用把变量的类型告诉编译器,编译器会替你判断。

但是,不要滥用隐式类型的局部变量,因为那样会令代码难于阅读,甚至可能产生微妙的类型转换bug。若初始化变量所用的那条表达式无法清晰传达出适当的语义,从而令阅读代码的人容易误解其类型,那么就不应该用var来声明该变量,而是应该明确指出其类型。

总之,除非开发者必须看到变量的声明类型之后才能正确理解代码的含义,否则,就可以考虑用var来声明局部变量。注意,这意味着不能盲目地使用var来声明一切局部变量,例如对int、float、double等数值型的变量,就应该明确指出其类型,而对其他变量则不妨使用var来声明。有的时候,即便把变量的类型打上去,也未必能确保类型安全,或者保证代码变得更容易读懂。如果选用了不合适的类型,那么程序的效率就有可能会下降,这样做的效果还不如让编译器自动去选择。