61.可空类型
61.1 题目
可空类型是什么?它的作用是什么?
61.2 深入解析
可空类型是针对值类型的拓展。使得值类型能够表示“无值”的情况。
一般在值变量类型后面加上?即可表示可空类型
比如:int?、float?、bool?
作用:
1.在数据库中,某些字段可能允许空值,我们可以用可空类型来处理这种数据
2.在加载游戏对象某个属性时,如果这个属性是可选的,可能在某些情况为空(表示未设置,未执行),可以用可空类型表示这种状态
3.对于一些可选的bool设置,它存在选中,未选中,未设置三种状态时,我们可以用可空布尔来表示
等等
61.3 答题示例
“C# 中的可空类型(Nullable Type)是为值类型(如
int、bool)提供的一种扩展机制,允许它们表示“无值”状态。在值类型后加?即可声明,例如int?或bool?。其核心作用在于解决值类型无法显式表达“缺失值”的问题。比如:
- 数据库映射:当从数据库读取可为空的字段(如
NULL)时,可直接映射到int?类型,避免类型不匹配异常。- 可选参数或状态:在游戏开发中,某些属性可能存在“未设置”状态(如可选的难度系数、未初始化的计时器),使用可空类型能清晰表达这种语义。
- 三态逻辑:
bool?可表示“真/假/未知”三种状态,比普通bool更灵活。可空类型通过
HasValue属性判断是否有值,通过Value获取实际值,或使用GetValueOrDefault()提供默认值;相比把值类型装箱成object再表示 null,语义更清晰且开销更低。”
61.4 关键词联想
System.Nullable<T>- 装箱与拆箱
HasValue和Value属性- 空合并运算符
?? - 数据库字段映射
- 三态布尔逻辑
- 可选参数设计
GetValueOrDefault()- 值类型 vs 引用类型
- 空条件运算符
?.
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com