c#中bool的默认值

时间:2011-02-14 19:52:02

标签: c# .net

public bool PrepaymentCalculating { get; set; }

所以我在我的一个类上声明了一个变量。我希望这个默认为'null'而不是false。我只需要将其作为可以为空的布尔值吗?或者有更好的方法吗?

6 个答案:

答案 0 :(得分:15)

  

我只需要将其设为可以为空的布尔值吗?

  

或者有更好的方法吗?

没有

您可以使用

实现此目的
public bool? PrepaymentCalculating { get; set; }

答案 1 :(得分:5)

public bool? PrepaymentCalculating { get; set; }

这是Nullable Types

上的帖子

答案 2 :(得分:5)

public bool? PrepaymentCalculating { get; set; }

将使其可以为空。阅读它here

答案 3 :(得分:1)

如果你想让它为null,那么你需要使它成为可以为空的类型。

答案 4 :(得分:1)

像其他人一样说,但我想我会补充一下,你的目的是什么?我通常不想暴露可空的bool,因为这意味着使用此属性的所有内容都必须考虑可能的空值。

但有时我想知道它是否已在给定的上下文中初始化,如果没有,则使用其他地方的值(例如级联属性值)。在这种情况下,您可能希望使用这样的模式:

public bool PrepaymentCalculating { 
    get {
        if (_PrepaymentCalculating != null ) {
            return (bool)_PrepaymentCalculating;
        } else {
            return somethingElse; // bool
        }
    }
    set {
      _PrepaymentCalculating = value;
    }
} protected bool? _PrepaymentCalculating =null;

答案 5 :(得分:0)

bool不能为null。默认值可能是假的(但不要引用我)。

如果您希望它为null,那么您必须将其声明为可为空。