?: -------- 条件运算符:检查给出的第一个表达式 expression 是否为真。如果为真,则计算 operand1,否则计算 operand2。这是唯一带有三个操作数的运算符 。
string a = "a";
var b = a == "a" ? "a" : "b"; //"a"
?? -------- 用于泛型中,在值类型为空时指定默认值,如果为null,则运行后面的,否则返回前面的。
int a=(page ?? 20) - 3;
page==null 时,a=20-3=17
page!=null时,a=page-3