繁体   English   中英

c#中bool的默认值

[英]Default value for bool in c#

public bool PrepaymentCalculating { get; set; }

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

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

是。

或者有更好的方法吗?

没有。

你可以实现这一目标

public bool? PrepaymentCalculating { get; set; }

尝试

public bool? PrepaymentCalculating { get; set; }

这是关于Nullable Types的帖子

public bool? PrepaymentCalculating { get; set; }

将使其可以为空。 在这里阅读它

如果您希望它为null,那么您需要使其成为可空类型。

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

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

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

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

如果你想让它为null,那么你必须将它声明为可空。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM