三元表达式 ?.等运算

三元表达式

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;
 }

 

posted @ 2020-10-10 14:06  流年sugar  阅读(1443)  评论(0编辑  收藏  举报