为什么这个静态bool不需要初始化?

时间:2014-06-16 14:13:01

标签: c# initialization boolean

如果你打电话给checkBool,它总会返回"为什么这不会失败"

为什么这是为什么你不需要初始化_bool?

public sealed class falsefalse
{
    private static bool _bool;
    public static string checkBool()
    {
        if (!_bool)
            return "why does this not fail";
        else return "";
    }
}

2 个答案:

答案 0 :(得分:5)

如果您没有明确初始化它们,则类的字段有default values。类型bool的默认值为false。请参阅C#规范10.4.4 Field initialization

  

字段的初始值,无论是静态字段还是静态字段   instance field,是字段的默认值(第5.2节)   类型。

查看Default Values Table (C# Reference)

答案 1 :(得分:1)

字段会自动初始化为默认值。 default(bool)false,因此在这种情况下 - 除非另有说明,否则_bool将初始化为false