C# 可以为null 的类型

可以为 null 的类型是 System.Nullable 结构体的实例。可以为null的类型可以表示一个基础类型的所有值 T ,还可再表示一个 null 值。T 不能是引用类型,因为引用类型本身就可以为null。

Nullable x = 1;
int? y = 2;
  • 语法 T? 是 Nullable 的简写
  • 使用 Nullable.HasValue 和 Nullable.Value 属性可测试是否存在 null 值并检索值。如果 HasValue 返回 true,则变量包含值,并可通过 Value 访问,若 HasValue 返回 false,则变量值为 null
  • T? 默认值的 HasValue 属性返回 false

从可以为null的值类型转换为基础类型

使用运算符 ??

int? c = null;
//如果c为null,则d为-1,否则d = c
int d = c ?? -1;

不要使用强制类型转换的方式!运行时假如可为null 的值恰好为null,将引发异常

你可能感兴趣的:(C# 可以为null 的类型)