美文网首页
Effective C#笔记 - 优先使用隐式类型的局部变量

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

作者: Francis_Rose | 来源:发表于2019-12-11 20:39 被阅读0次

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

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

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

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

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

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

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

相关文章

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

    以前在使用局部变量的时候,代码规范规定必须用隐式类型,即var关键字,如 之前只是觉得这样可以省事很多,编译器就帮...

  • unity C# 自定义隐式转换

    在C#中类型转换类型:隐式转换(implicit conversions)隐式转换就是系统默认的、不需要加以声明就...

  • (转).NET面试题系列[12] - C# 3.0 LINQ的准

    "为了使LINQ能够正常工作,代码必须简化到它要求的程度。" - Jon Skeet 隐式类型的局部变量 隐式类型...

  • var lady first

    C# 中的隐式类型的局部变量是为了支持匿名类型而出现的,并且也是为了解决一部分查询操作返回的结果是 IQuerya...

  • C#魔灵-lesson_04-数据转换

    类型转换分以下两种 隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。 显式类型...

  • Unity常见面试题(一)

    1. [C#语言基础]请简述拆箱和装箱。 答: 装箱操作: 值类型隐式转换为object类型或由此值类型实现的任何...

  • C#隐式类型和显示类型

    一,在程序中我们经常会遇到:无法将类型“XXX”隐式装换为“XXX”,如下例子: 那这是什么原因呢? 由于 C# ...

  • C# 类型转换

    隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的...

  • 【二】基本数据类型和Eclipse使用

    1.基本数据类型(4类8种) 2.强制类型转换 隐式转换隐式转换 显式转换显式转换 3.Eclipse使用介绍 E...

  • 2017 10 18

    10月18日 继续就C#类型转换,运算符及方法的重载进行学习 类型转换 :隐式转换:int t = b1 + b2...

网友评论

      本文标题:Effective C#笔记 - 优先使用隐式类型的局部变量

      本文链接:https://www.haomeiwen.com/subject/zzpagctx.html