三元表达式 ?.等运算
三元表达式
DateTime为空处理
var date=lp == null ? (DateTime?)null : lp.Time; var date=lp == null ? new DateTime?() : lp.Time
空合并运算符??
public void Test(int? rate) { //表示??左边的rate不为null 结果就为rate否则就为??右边的结果1 int res = rate ?? 1; int? aa = rate ?? (int?)null; }
运算符??=
public void Test(int? rate) { //表示rate多为空就初始化为1 rate ??= 1; List<int> numbers = null; //如果numbers为空就初始化numbers并且numbers增加元素5 (numbers ??= new List<int>()).Add(5); }
c# 6.0增加了?.运算,表示不为null时执行后面的操作
public void Test(List<Customer> customer,Student student,int? rate) { //表示customer不为空就取 customer[0]的值,customer[0]不为空就取customer[0].Orders以此类推 int? count = customer?[0]?.Orders?.Count; var phone = student?.Classs ?? 1; }