可能重复:
在我安装了ReSharper之后,它(通过警告)要求我尽可能使用var,例如
UnhandledExceptionEventArgs ue = (UnhandledExceptionEventArgs) t;
ReSharper想把它变成
var ue = (UnhandledExceptionEventArgs) t;
我更喜欢第一个版本,有什么理由更喜欢var吗?更好的性能?什么都行?或者这只是一种代码风格?
发布于 2011-02-02 06:06:19
发布于 2011-02-02 06:07:22
你说的“警告”到底是什么意思?我经常看到它给出一个提示,你可能想使用var,但没有什么比警告更刺耳的了。
使用var没有性能差异-代码被编译成相同的IL。潜在的好处在于可读性-如果你已经在赋值的RHS上明确了变量的类型(例如,通过强制转换或构造函数调用),那么在LHS上也有它的好处在哪里?不过,这是个人喜好。
如果您不希望R#建议使用var,只需更改选项即可。关于ReSharper的一件事:它是非常可配置的:)
发布于 2011-02-02 06:15:57
正如其他人所说,当您使用以下任一选项时,编译后的代码(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));
https://stackoverflow.com/questions/4868477
复制相似问题