【发布时间】:2011-06-28 13:56:26
【问题描述】:
我不询问它是如何工作的。我不询问它是否会影响性能。我已经知道这些答案了。
我想知道最初是什么激发了 MS C# 团队将其添加到语言中。你不会在语言中添加琐碎的东西。它解决了一定有一个值得注意的问题。那是什么问题?
我见过的最接近“它解决的问题”的例子是使用匿名类型时,如下所示:
var linqResult = from element in SomeCollection s
elect new { element.A, element.B }
这种用法具有讽刺意味的是,样式和编码标准指南(例如 Microsoft 提供的)建议编码人员在结果类型不明显时避免使用“var”。换句话说,“var”的(大概)预期用途与编码标准指南相冲突。
如果我正在编写编码标准,并试图防止过度使用 'var',我会有点倾向于说“仅在响应匿名类型时使用 'var'”。但这带来了一个完整的问题:在语言中添加“var”的目的是什么?
【问题讨论】:
-
您确实回答了您的问题。引入
var是为了支持匿名类型,因为没有其他方法可以拥有匿名类型的变量。 -
你已经有了答案:最初的目的是处理匿名类型。
-
@David - Bingo,我在找那个。
-
@David - 或者可能是
infer,因为一些疯狂的程序员使用var不仅仅是匿名类型。
标签: c# linq coding-style var