在构造函数或声明中初始化类字段?

问题:

我最近在C#和Java编程,我很好奇地最好的地方是初始化我的课堂。
我应该在声明中这样做吗?

public class Dice
{
    private int topFace = 1;
    private Random myRand = new Random();

    public void Roll()
    {
       // ......
    }
}

或者在构造函数中?

public class Dice
{
    private int topFace;
    private Random myRand;

    public Dice()
    {
        topFace = 1;
        myRand = new Random();
    }

    public void Roll()
    {
        // .....
    }
}

我很好奇你们中的一些退伍军人认为是最好的做法。我想保持一致,坚持一种办法。

回答:

我的规则:

  1. 不要使用声明(nullfalse00.0 …)中的默认值进行初始化。
  2. 如果您没有更改字段值的构造函数参数,则首选在声明中初始化。
  3. 如果字段的值由于构造函数参数而改变,则将初始化放在构造函数中。
  4. 在你的实践(最重要的规则)中保持一致。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Initialize class fields in constructor or at declaration?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

37 + = 42