从历史上讲,我在分配之前初始化了成员变量,如下所示:
private bool _myBool = false;
private int _myInt = int.MinValue;
private string _myString = String.Empty;最近,我发现自己是这样初始化它们的(通常使用原语):
private DateTime _myDateTime = default(DateTime);
private bool _myBool = default(bool);
//etc这是不好的还是好的做法?怎么会这样?
发布于 2013-10-10 17:55:00
我不认为这样做有什么意义,因为您正在添加额外的代码,而这些代码实际上什么也不做。
如果您试图默认(类),也会得到null。
发布于 2013-10-10 17:57:05
private int _myInt = int.MinValue;和default(int)是不同的。
这完全取决于你的要求。如果您希望您的变量有一个值,那么IMO使用default将更加可读性和清晰度。
它只对函数局部变量重要,对于类字段,它将由编译器完成。
发布于 2013-10-10 17:58:12
添加命令编译器做它无论如何都要做的事情的语句是一种糟糕的做法(这也适用于bool _myBool = false,尽管程度较小)。
与必须显式分配的局部变量不同,字段被隐式初始化为其默认值。编译器已经知道要这样做了,所以额外的代码绝对不是针对编译器的。
由于您的代码的唯一其他“使用者”是您的读取器,所以问题归结为“期望读者知道类中的字段被初始化为默认值是合理的吗?”我认为答案应该是“是”,因为这是极其基本的知识。
https://stackoverflow.com/questions/19302801
复制相似问题