C#面试题更新 2026-08-03

在 C# 中,可空类型指的是什么?请说明如何检查一个可空类型变量是否包含值。

考察说明

考查对 C# 可空类型概念及其值判断方法的掌握。

回答思路

  1. 【回答框架 1】可空类型是 System.Nullable<T> 的实例,允许值类型变量赋值为 null,用于表示缺失或未知值。
  2. 【回答框架 2】判断是否有值可使用 HasValue 属性,若为 true 则包含值,可通过 Value 属性获取;也可与 null 比较,或使用 GetValueOrDefault 方法。
  3. 【回答框架 3】使用 Value 属性前应确保 HasValue 为 true,否则会抛出 InvalidOperationException。
  4. 【回答框架 4】可空类型支持 ?? 运算符提供默认值,以及 ?. 和 ?[] 等空条件运算符简化判空逻辑。
  5. 【回答框架 5】在 C# 中,可空值类型与普通值类型在装箱、比较和转换上有特定行为,需注意与引用类型 null 的区别。
  6. 【关键点 1】可空类型基于 System.Nullable<T>,仅适用于值类型。
  7. 【关键点 2】HasValue 属性用于判断是否有值,Value 属性获取值,访问前需检查。
  8. 【关键点 3】使用 ?? 运算符可提供默认值,避免显式判空。
  9. 【关键点 4】空条件运算符 ?. 可安全访问成员,避免 NullReferenceException。
  10. 【易错点 1】直接访问 Value 属性而未检查 HasValue 会抛出异常。
  11. 【易错点 2】可空类型与引用类型的 null 语义不同,不可混淆。
  12. 【易错点 3】过度使用可空类型可能增加代码复杂度,应仅在必要时使用。