首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >初始化成员变量时使用默认关键字是个坏主意吗?

初始化成员变量时使用默认关键字是个坏主意吗?
EN

Stack Overflow用户
提问于 2013-10-10 17:53:12
回答 5查看 184关注 0票数 2

从历史上讲,我在分配之前初始化了成员变量,如下所示:

代码语言:javascript
运行
复制
private bool _myBool = false;
private int _myInt = int.MinValue;
private string _myString = String.Empty;

最近,我发现自己是这样初始化它们的(通常使用原语):

代码语言:javascript
运行
复制
private DateTime _myDateTime = default(DateTime);
private bool _myBool = default(bool);
//etc

这是不好的还是好的做法?怎么会这样?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-10-10 17:55:00

我不认为这样做有什么意义,因为您正在添加额外的代码,而这些代码实际上什么也不做。

如果您试图默认(类),也会得到null。

票数 5
EN

Stack Overflow用户

发布于 2013-10-10 17:57:05

private int _myInt = int.MinValue;default(int)是不同的。

这完全取决于你的要求。如果您希望您的变量有一个值,那么IMO使用default将更加可读性和清晰度。

它只对函数局部变量重要,对于类字段,它将由编译器完成。

票数 3
EN

Stack Overflow用户

发布于 2013-10-10 17:58:12

添加命令编译器做它无论如何都要做的事情的语句是一种糟糕的做法(这也适用于bool _myBool = false,尽管程度较小)。

与必须显式分配的局部变量不同,字段被隐式初始化为其默认值。编译器已经知道要这样做了,所以额外的代码绝对不是针对编译器的。

由于您的代码的唯一其他“使用者”是您的读取器,所以问题归结为“期望读者知道类中的字段被初始化为默认值是合理的吗?”我认为答案应该是“是”,因为这是极其基本的知识。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19302801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档