ReSharper和隐式类型变量

Use*_*ser 3 .net resharper implicit-typing

我正在使用ReSharper帮助我发现我的代码中可能存在的错误,虽然不是错误,但它仍然抱怨我应该使用var关键字而不是在声明上显式键入变量.我个人认为,如果我写的话,对我和任何读我代码的人都会更清楚

IList<T> someVar = new List<T>();
Run Code Online (Sandbox Code Playgroud)

代替

var someVar = new List<T>();
Run Code Online (Sandbox Code Playgroud)

知道两种方式之间没有性能差异,我应该忽略这些提示还是坚持使用var关键字?

它只是一个品味的问题,还是隐含地输入变量的好习惯?

Dmi*_*kiy 5

我看到至少有两个原因.

首先,它的干燥原则问题:不要重复自己.如果您将来决定将变量类型更改List<>Stack<>LinkedList<>,那么var您必须在一个地方进行更改,否则您必须在两个地方进行更改.

二,泛型类型声明可能很长.Dictionary<string, Dictionary<int, List<MyObject>>>任何人?这不适用于简单List<T>,但不应该有两种代码样式用于不同的对象类型.