ToB企服应用市场:ToB评测及商务社交产业平台

标题: C# ?的7种用法 [打印本页]

作者: 渣渣兔    时间: 2023-7-27 01:30
标题: C# ?的7种用法
1. 可空类型修饰符?
  1. int i? num=null;//表示可空的整型
  2. DateTime time? dateTime=null; //表示可空的时间
复制代码
2.三元(运算符)表达式?:
  1. x?y:z //表示如果表达式x为true,则返回y,如果x为false,则返回z,是省略if{}else{}的简单形式。
复制代码
3.NULL检查运算符?.
  1. int? first = customers?[0].Orders.Count();
复制代码
(1)?[ ]
  1. int? first = customers?[0].Orders.Count();
复制代码
(2)?[]?
  1. public static Delegate? Combine(params Delegate?[]? delegates)
  2. {
  3.     if (delegates == null || delegates.Length == 0)
  4.         return null;
  5.     Delegate? d = delegates[0];
  6.     for (int i = 1; i < delegates.Length; i++)
  7.         d = Combine(d, delegates[i]);
  8.     return d;
  9. }
  10. //params Delegate?[] delegates -它是可为空的数组 Delegate
  11. //params Delegate?[]? delegates -整个数组可以为空
复制代码
4.空合并运算符??

(1)??
  1. //用于定义引用类型和可空类型的默认值。如果此运算符的左操作数不为Null,则此操作符将返回左操作数,否则返回右操作数。
  2. var c = a??b //当a不为null时返回a,为null时返回b
复制代码
(2)null 合并赋值运算符??=
  1. 仅当左操作数计算为 null 时,才能使用运算符 ??= 将其右操作数的值分配给左操作数。
  2. List<int> numbers = null;
  3. int? i = null;
  4. numbers ??= new List<int>();
  5. numbers.Add(i ??= 17);
  6. numbers.Add(i ??= 20);
  7. Console.WriteLine(string.Join(" ", numbers));  // output: 17 17
  8. Console.WriteLine(i);  // output: 17
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4