在 C# 中,什么是 Nullable 类型?它有什么作⽤?

360影视 2025-01-04 21:28 2

摘要:扩展值类型的表达能力默认情况下,值类型(如 int)不能存储 null。使用 Nullable 类型,可以为这些值添加 "未定义" 或 "缺失" 的意义。int? age = null; // age 表示年龄未知 if (age.HasValue) Cons

扩展值类型的表达能力
默认情况下,值类型(如 int)不能存储 null。使用 Nullable 类型,可以为这些值添加 "未定义" 或 "缺失" 的意义。int? age = null; // age 表示年龄未知 if (age.HasValue) Console.WriteLine($"Age: {age.Value}"); else Console.WriteLine("Age is not defined.");数据库交互
与数据库中的 NULL 值进行映射,特别是在处理 SQL 查询结果时,Nullable 类型用于表示可能为空的字段。减少异常处理
避免因未初始化值或空值而引发的运行时错误。数据建模
在业务逻辑中,Nullable 类型可以表示某些数据可能缺失,例如一个可选的配置项或用户输入。HasValue:表示当前是否有值。Value:获取当前的值(如果存在)。访问空值会抛出 InvalidOperationException。int? number = null; if (number.HasValue) Console.WriteLine(number.Value); else Console.WriteLine("Number is null.");为 null 的情况提供默认值。int? number = null; int result = number ?? 42; // 如果 number 为 null,则取 42 Console.WriteLine(result); // 输出 42用于链式操作,避免空值异常。int? nullableValue = null; int? doubled = nullableValue?.GetValueOrDefault * 2;Nullable 类型可以隐式转换为其基础值类型:int? nullableInt = 10; int regularInt = (int)nullableInt; // 强制转换从基础类型隐式转换为 Nullable 类型:int regularInt = 5; int? nullableInt = regularInt;

来源:面试八股文

相关推荐