C# bool的默认值(c)#
所以我在我的一个类上声明了一个变量。我希望它默认为“null”,而不是false。我需要把它变成一个可为空的布尔值吗?或者有更好的方法吗?试试看C# bool的默认值(c)#,c#,.net,C#,.net,所以我在我的一个类上声明了一个变量。我希望它默认为“null”,而不是false。我需要把它变成一个可为空的布尔值吗?或者有更好的方法吗?试试看 public bool PrepaymentCalculating { get; set; } 这里有一篇关于bool的帖子,bool不能为空。默认值可能为false(但不要引用我的话) 如果希望它为null,则必须将其声明为可为null。如果希望它为null,则需要将其设置为可为null的类型 public bool? PrepaymentCalc
public bool PrepaymentCalculating { get; set; }
这里有一篇关于bool的帖子,bool不能为空。默认值可能为false(但不要引用我的话)
如果希望它为null,则必须将其声明为可为null。如果希望它为null,则需要将其设置为可为null的类型
public bool? PrepaymentCalculating { get; set; }
将使其可为空。读一读
我需要把它变成一个可为空的布尔值吗
对
还是有更好的方法
没有
您可以使用
public bool? PrepaymentCalculating { get; set; }
就像其他人说的,但我想补充一句,你来这里的目的是什么?我并不经常想公开一个可为null的bool,因为这意味着使用此属性的所有内容都必须考虑一个可能的null值 但有时我想知道它是否已在给定上下文中初始化,如果未初始化,则使用其他地方的值(例如,级联属性值)。在这种情况下,您可能希望使用如下模式:
public bool? PrepaymentCalculating { get; set; }
是,默认值为
false
。将零视为false(非零表示1),并注意值类型的默认值只是将结构置零。另见。
public bool PrepaymentCalculating {
get {
if (_PrepaymentCalculating != null ) {
return (bool)_PrepaymentCalculating;
} else {
return somethingElse; // bool
}
}
set {
_PrepaymentCalculating = value;
}
} protected bool? _PrepaymentCalculating =null;