c# - 为什么 var 是坏事?

标签 c# coding-style implicit-typing

前几天和同事聊天,听说他们的编码标准明确禁止他们在C#中使用var关键字。他们不知道为什么会这样,而且我一直发现隐式声明在编码时非常有用。我在找出变量的类型方面从来没有遇到过任何问题(您只需将鼠标悬停在 VS 中的变量上,您就会以这种方式获得类型)。

有谁知道为什么在 C# 中使用 var 关键字是个坏主意?

最佳答案

2008 年 11 月出版的 .Net Framework Design Guidelines(很棒的书)的作者建议在类型明显且明确时考虑使用 var

另一方面,如果使用 var 会导致阅读代码时出现歧义,正如 Anton Gogolev 指出的那样,那么最好不要使用它。

在书中(附件A),他们实际上给出了这个例子:

var names = new List<string>(); // good usage of var

string source = GetSource();
var tokens = source.Split(' '); // ok; most developers know String.Split

var id = GetId(); // Probably not good; it's not clear what the type of id is

有可能,为了确保可读性不受低级开发人员的突发奇想影响,您的组织认为您不配使用 var 并禁止使用它。
遗憾的是,这就像拥有一个可以随意使用的好工具,但将它锁在一个上锁的玻璃柜中。

在大多数情况下,对简单类型使用 var 实际上有助于提高可读性,我们不能忘记使用 var 也没有性能损失。

关于c# - 为什么 var 是坏事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/545616/

相关文章:

c++ - 我应该对(数组索引)范围使用什么类型?

debugging - 面对看似无法解决的有时间限制的情况该怎么办?

c# - C# 中的 var - 为什么它不能用作成员变量?

c# - itextsharp 渐变背景

javascript - 在 jQuery 中将选择器组合为变量

c# - 绑定(bind) DataGridView 中的组合框

swift - 你能在 Swift 中同时定义和实例化隐式类型吗?

c# - 使用 C# var 隐式键入 System.Data.Datarow

c# - MVC4 模板只能用于字段访问

c# - 在 WinForms c# 中获得集中控制的最快方法?