我正在看即将到来的Visual Studio 2017。
在标题为“ 提高生产力 ”的部分下,有一张Visual Studio图像,用于将所有出现的var替换为显式类型。
该代码显然有一些问题,Visual Studio已将其识别为“需要修复”。
我想仔细检查一下我对C#中var用法的理解,因此我读了Eric Lippert在2011年发表的一篇文章,文章名称为隐式类型的使用和滥用。
埃里克(Eric)说:
- 必要时使用var;当您使用匿名类型时。
- 当声明的类型对初始化器来说很明显时,请使用var,尤其是在创建对象时。这消除了冗余。
- 如果代码强调变量的语义“业务目的”并轻视变量存储的“机械”细节,请考虑使用var。
- 如果需要这样做,则必须使用显式类型,以便正确理解和维护代码。
- 无论是否使用“ var”,都使用描述性变量名称。变量名称应代表变量的语义,而不是变量存储的详细信息;“ decimalRate”不好;“ interestRate”很好。
我认为代码中的大多数var用法都可以。我认为不要将var用于读取的位...
var tweetReady = workouts [ ... ]
...因为它不是100%立即是什么类型,但是即使那样我还是很快就知道它是boolean
。
这部分的var用法...
var listOfTweets = new List<string>();
...在我看来完全像var的用法一样,因为我认为执行以下操作是多余的:
List<string> listOfTweets = new List<string>();
尽管根据Eric所说的,变量应该可能是tweets而不是listOfTweets。
更改所有var
用途的原因是什么?我缺少此代码有什么问题吗?
var
这里的所有用法都可以。您可以更改一个-即便如此,我仍然认为确实没有必要。为什么将它们全部更改为显式类型?
vars
标记都以相同的方式标记;旁边带有相同的警告十字标记,并带有红色下划线。大概Visual Studio希望以相同的方式纠正它们。除非我弄错了。