C#:bool?

发布时间:2026/6/26 13:22:46
C#:bool? C#中的bool?是可空布尔类型除了能存true和false还能存null用来表示“未知”或“未设置”的状态 。1. 三种取值普通bool只有真true和假false两种加上问号变成bool?后多了一个null值一共能存三种状态 。2. 写法含义它是Nullablebool的简写就是在布尔类型后面加个问号告诉程序这个变量允许为空 。3. 默认状态普通bool不赋值时默认是false而bool?不赋值时默认是null 。使用方式1. 判断真假不能直接把它放在if后面用因为程序不知道null算真还是假得写成if (flag true)或者先检查有没有值 。2. 逻辑运算用和|做运算时支持三值逻辑比如true null结果是null但和||这两个短路运算符不支持bool? 。3. 获取数值想拿到里面的真或假得先用HasValue检查是不是null确认有值后再用Value拿出来或者用??给个默认值 。Null 合并运算符??如果左边的值不为null则返回左边的值否则返回右边的值。使用场景1. 数据库对应数据库里的布尔字段有时候是空的比如用户没选“是否同意”这时候用bool?能完美对应避免报错 。2. 区分状态当你需要区分“假”和“没设置”时用比如开关状态false是关null是还没配置过 。3. 参数传递方法参数如果是bool?调用时可以传null表示不使用该参数控制逻辑增加灵活性 。