设置变量默认值的好地方是什么?

时间:2012-09-11 07:51:44

标签: c# oop

类构造函数是设置变量默认值的最佳位置吗?

在我继承的大部分代码中都是如此。

示例

public class foo
{
    public bool IsAcidic { get; set; }

    public foo()
    {
        IsAcidic = false;
    }
}

这是你怎么做的?

2 个答案:

答案 0 :(得分:4)

如果要为该特定对象的任何实例分配一些默认值,那么YES,构造函数是最适合为它们分配默认值的地方,但是如果要为字段指定类型的默认值,那么你不必做任何事情。将使用构造函数之前的类型的默认值初始化字段。例如,如果您有int类型字段,则默认情况下将为其分配0,您无需在构造函数中执行任何操作。

答案 1 :(得分:0)

您应该将变量设置为值(显式或隐式),尽可能接近该变量的创建。

这是C99(作为一个例子)开始闪耀的地方。到那时为止,你必须在函数的开头创建变量,即使你可能不知道它们应该是什么。通过断开连接,很难跟踪哪些变量被设置为什么值。当C99引入了在功能中创建新变量的能力时,这种脱节就消失了。

因此,对于您的示例,最好在构造函数中设置默认值,因为这是变量存在的位置。

如果在构造函数中执行它(例如,它是在init方法调用中完成的),那么这不是默认值,只是因为有时间当这些变量设置为其他变量时。