【发布时间】:2011-09-06 11:20:32
【问题描述】:
最近我看到一个人大量使用 var 和 default 关键字来声明变量(以及每个声明),是这样的:
var employee = default(Employee); //Employee is a class
var errorInfo = default(ErrorInfo); //ErrorInfo is struct; Blank is default value
var salary = default(Double);
var isManager = default(Boolean?);
而不是使用:
Employee employee = null; //Employee is a class
ErrorInfo errorInfo = Blank; //ErrorInfo is struct; Blank is default value
Double salary = 0.0;
Boolean? isManager = null;
或者,而不是使用偶数:
Employee employee; //Employee is a class
ErrorInfo errorInfo; //ErrorInfo is struct; Blank is default value
Double salary;
Boolean? isManager;
现在使用 var 和 default 来声明每个变量是我不习惯的。
想知道:
- 如果这是推荐的做法?
- 你的观点和偏好?
PS:
- 经历了Use of var keyword in C#、Use of "var" type in variable declaration 和https://stackoverflow.com/questions/633474/c-do-you-use-var,但是,认为这个问题虽然相关但略有不同,因为它仅与声明/初始化有关,而不是与分配有关。
- 我了解 snipped 2 和 sn-p 3 之间的区别。但是,问题更多的是关于 sn-p 1。
- 如果您强烈认为这个问题属于程序员 stackexchange,请随意移动。
【问题讨论】:
-
我同意,任何让您认为“我想知道 errorInfo 的默认值是什么”的东西都会降低可读性。尤其是如果您必须深入挖掘源头才能找到答案。
-
@Ben:我不明白你的评论。为什么需要挖?引用类型的默认值始终为
null。 -
@Daniel 是的,但是这个例子中的 errorInfo 是一个你从未听说过的任何随机类型乍一看都可能是的结构。
-
是的,我想这与仅使用 = new ErrorInfo() 没有什么不同