Bre*_*ias 14 c# linq coding-style var
可能重复:
var关键字有什么意义?
我不是在问它是如何运作的.我不是在问它是否会影响性能.我已经知道那些答案了.
我想知道MS C#团队首先将它添加到语言中的原因.你不会在语言中加入无聊的东西.一定有一个值得注意的问题.这是什么问题?
我见过的"它解决的问题"最接近的例子是使用匿名类型时,如下所示:
var linqResult = from element in SomeCollection s
elect new { element.A, element.B }
Run Code Online (Sandbox Code Playgroud)
具有讽刺意味的是,样式和编码标准指南(例如Microsoft提供的)建议编码人员避免在结果类型不明显时使用'var'.换句话说,'var'的(推测)预期目的与编码标准指南相冲突.
如果我正在编写编码标准,并试图防止过度使用'var',我有点倾向于说"仅使用'var'来回应匿名类型." 但这带来了问题的全方位:将"var"添加到语言中的目的是什么?
Mic*_*tum 14
匿名类型是最重要的,但也减少了方法中的重复:
Dictionary<MyCustomType, List<MyOtherCustomType>> dict = new Dictionary<MyCustomType, List<MyOtherCustomType>>();
Run Code Online (Sandbox Code Playgroud)
没错!匿名类型.如果没有var并且仍然具有智能感知,你将如何保持对创建的匿名类型的引用?
换句话说:当没有时var,就没有任何匿名类型在我们现在拥有编译时支持的可用意义上.匿名类型的运行时错误太多了.
添加的糖(过度使用时的复杂性)是你可以使用var甚至非匿名变量.当然有效,但这是一个坏习惯.
| 归档时间: |
|
| 查看次数: |
3644 次 |
| 最近记录: |