c#中bool的默认值
public bool PrepaymentCalculating { get; set; }
所以我在我的一个类上声明了一个变量。 我希望它默认为’null’而不是false。 我只需要将其作为可以为空的布尔值吗? 或者有更好的方法吗?
我只需要将其作为可以为空的布尔值吗?
是。
或者有更好的方法吗?
没有。
你可以实现这一目标
public bool? PrepaymentCalculating { get; set; }
尝试
public bool? PrepaymentCalculating { get; set; }
这是关于Nullable Types的post
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,那么你必须将它声明为可空。