在数据类型后面加个问号 ?,它就可以接受 null 值了。
int normalInt = 10;
// normalInt = null; // 报错!普通侠客不能练这招。
int? nullInt = 10;
nullInt = null; // 可以!现在它里面什么都没有,是空的。
bool? isHappy = null; // 开心?不开心?还是没感觉(null)?
如果发现是空的,就用个备胎顶上。
int? myMoney = null;
// 如果 myMoney 是 null,就当做 0 块钱。
int actualMoney = myMoney ?? 0;
string? 或者 int? 就非常管用,能避免程序因为找不到数据而崩溃。
编写代码:
int? score = null;?? 运算符,如果它是空的,就输出 "缺考"。
int? score = null;
Console.WriteLine("分数:" + score); // 输出空,什么都看不见
// 必须先转换成字符串或者用 object 才能和字符串拼接而不报错,但在 Console.WriteLine 里直接拼一般没事。
// 更严谨的写法:
string message = (score ?? -1).ToString();
if (message == "-1") message = "缺考";
Console.WriteLine("最终结果:" + message);