“var”关键字是否会妨碍代码的可读性?

时间:2010-09-30 21:38:08

标签: c# resharper code-readability

我刚开始使用Resharper。它的一个特点是,它建议基于我认为良好的编码实践来改变代码。

它建议的一个更改是在赋值期间将变量类型更改为var。我一直在改变,现在代码到处都是var。不知何故,我感觉“var”关键字使代码有点难以理解。

在可能的情况下使用“var”是否是一个很好的编码实践,或者更好地坚持实际类型。 (匿名类型除外,其中需要使用“var”)

感谢。

2 个答案:

答案 0 :(得分:4)

如果你有这样的代码,我建议使用var

var surelyAnXText = new XText(...);

你总是可以告诉我们要声明变量的所需类型。但是,当你有这样的事情时,不是这样:

var whatIsThis = foo.Some_Method_Where_You_Cant_Tell_The_Return_Type_From_The_Name();

答案 1 :(得分:3)

C# programming guide建议在增强可读性时使用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.