我刚开始使用 Resharper。它的特点之一是它建议基于良好的编码实践对代码进行更改。
它建议的更改之一是在分配期间将变量类型更改为 var。我一直在改变,现在代码到处都有 var 。不知何故,我觉得“var”关键字使代码有点难以理解。
尽可能使用“var”是一种好的编码习惯,还是坚持使用实际类型更好。(除了需要使用“var”的匿名类型)
谢谢。
我刚开始使用 Resharper。它的特点之一是它建议基于良好的编码实践对代码进行更改。
它建议的更改之一是在分配期间将变量类型更改为 var。我一直在改变,现在代码到处都有 var 。不知何故,我觉得“var”关键字使代码有点难以理解。
尽可能使用“var”是一种好的编码习惯,还是坚持使用实际类型更好。(除了需要使用“var”的匿名类型)
谢谢。
我建议var
在你有这样的代码时使用:
var surelyAnXText = new XText(...);
你总是可以告诉我们声明变量的需要类型。但不是当你有这样的事情:
var whatIsThis = foo.Some_Method_Where_You_Cant_Tell_The_Return_Type_From_The_Name();
C# 编程指南建议在增强可读性时使用 var,例如当类型很明显、太复杂或根本不重要时。
当变量的特定类型在键盘上输入起来很乏味,或者很明显,或者不增加代码的可读性时,var 关键字也很有用。var 以这种方式有帮助的一个示例是嵌套泛型类型,例如与组操作一起使用的泛型类型。在以下查询中,查询变量的类型是
IEnumerable<IGrouping<string, Student>>
。只要您和必须维护您的代码的其他人理解这一点,为了方便和简洁使用隐式类型就没有问题。
没有一般规则。在某些情况下,显式类型可能会增强可读性。
例子:
var x = new Thingy(); //type is obvious
var x = dict.Where(x => x.Value > 3); // type is complex and not important
Foo(GetValue(FromOverThere())); // type is implicit anyway
// equivalent to:
var fromOverThere = FromOverThere();
var value = GetValue(fromOverThere)
Foo(value);
FooDocument doc = repository.Get(id); // glad to see the type here.