null运算
NullReferenceException是最常见的异常。
演示:形成过程
class Student { public double[] Scores { get; set; }
new Student().Scores[0] = 98.5;
为了避免抛出这种异常,以前我们不得不在代码中加上大量的null check语句:
if (Scores == null) { Scores = new double[10]; } else
null值替代运算符 ??
不为null值时,返回原值;为null值时,返回 ?? 后替代值
SQL.Teacher = SQL.Teacher ?? new Teacher();
等同于:
if (SQL.Teacher == null) { SQL.Teacher = new Teacher(); }
null条件运算符 ?. 和 ?[]
只有 . 或者 [] 前面的变量不为null值的时候,才进行取值;否则返回null值。
string name = SQL.Teacher?.Name;
等同于:
string name = null; if (SQL.Teacher.Name != null) { name = SQL.Teacher.Name; }/*else name 仍然是null*/