'var'的目的是什么?
可能重复:
var关键字有什么意义?
我不是问它是如何工作的。 我不问它是否影响性能。 我已经知道这些答案。
我想知道什么启发了MS C#团队首先将其添加到语言中。 你不会为一种语言添加轻微的东西。 它一定有一个值得注意的问题解决。 这是什么问题?
我见过的“它解决的问题”最接近的例子是使用匿名类型时的情况,例如:
var linqResult = from element in SomeCollection s
elect new { element.A, element.B }
这种用法的讽刺之处在于,风格和编码标准指南(如Microsoft提供的)建议编码人员避免在结果类型不明显时使用“var”。 换句话说,'var'的(可能)预期目的与编码标准准则相冲突。
如果我正在编写代码标准,并且试图防止过度使用'var',那么我会倾向于说'仅在响应匿名类型时使用'var'“。 但是这使问题变成了一个完整的问题:为语言添加了'var' 的目的是什么?
匿名类型是最大的,但也减少了方法中的重复:
Dictionary<MyCustomType, List<MyOtherCustomType>> dict = new Dictionary<MyCustomType, List<MyOtherCustomType>>();
确实 ! 匿名类型。 如果没有var
并且仍然具有智能感知,那么在世界上如何保持对创建的匿名类型的引用?
换句话说:当没有var
,在编译时支持的时候就不会有任何匿名类型了。 匿名类型会有太多运行时错误。
添加的糖(过度使用时的复杂性)是,即使非匿名变量也可以使用var。 它确实有效,但这是一个坏习惯。
据我所知,var关键字几乎可以让LINQ更容易使用匿名类型
链接地址: http://www.djcxy.com/p/53825.html