我已经安装了ReSharper的,它要求(通过警告)之后,我使用VAR只要有可能,例如
UnhandledExceptionEventArgs ue = (UnhandledExceptionEventArgs) t;
ReSharper的希望把它变成
var ue = (UnhandledExceptionEventArgs) t;
我喜欢第一个版本更好,有什么理由更喜欢var?更好的性能?什么?或者它只是一种代码风格?
我已经安装了ReSharper的,它要求(通过警告)之后,我使用VAR只要有可能,例如
UnhandledExceptionEventArgs ue = (UnhandledExceptionEventArgs) t;
ReSharper的希望把它变成
var ue = (UnhandledExceptionEventArgs) t;
我喜欢第一个版本更好,有什么理由更喜欢var?更好的性能?什么?或者它只是一种代码风格?
当你说 “的警告,” 你到底是什么意思?我通常看到它给你一个提示,你可能可能想要使用var,但没有像警告那样苛刻。
与var没有性能差异 - 代码被编译为相同的IL。潜在的好处在于可读性 - 如果您已经在作业的RHS(例如,通过演员或构造函数调用)上使变量类型清晰可见,那么LHS上的好处还有哪些?不过这是个人喜好。
如果您不希望R#建议使用var,只需更改选项即可。一件事ReSharper的:这是非常配置:)
在这种情况下它只是编码风格。
只有在处理匿名类型时才需要使用var
。
在其他情况下,这是一个品味问题。
正如其他人所说,有在编译的代码(IL)没有差异,当您使用以下两种:
var x1 = new object();
object x2 = new object;
我想ReSharper的警告你,因为它是[在我看来]更容易读第一个例子比第二个例子。此外,需要重复两次该类型的名称?
考虑下面,你会明白我的意思:
KeyValuePair<string, KeyValuePair<string, int>> y1 = new KeyValuePair<string, KeyValuePair<string, int>>("key", new KeyValuePair<string, int>("subkey", 5));
这是比较容易的方式,而不是阅读:
var y2 = new KeyValuePair<string, KeyValuePair<string, int>>("key", new KeyValuePair<string, int>("subkey", 5));
其他重复http://stackoverflow.com/questions/296783/resharper-vars http:// stackoverflow。com/questions/1010480/why-does-resharper-default-to-warning-if-you-dont-declare-using-var http://stackoverflow.com/questions/1873873/why-does-resharper-want-to -use-var-for-everything http://stackoverflow.com/questions/1299045/is-resharper-correct – 2011-02-01 22:10:15
-1:这已被覆盖* so *以前多次,重复很容易通过搜索网站找到。 – 2011-02-01 22:12:47
@Greg Beech我不同意,不是每个人都知道它是一个ReSharper的bug,我认为这意味着什么,但我错了。 – IAdapter 2011-02-01 22:14:38