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

sta*_*ser 5 c# resharper code-readability

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

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

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

谢谢.

Ste*_*ger 3

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.
Run Code Online (Sandbox Code Playgroud)