#1. 可空類型修飾符? ```CSharp int i? num=null;//表示可空的整型 DateTime time? dateTime=null; //表示可空的時間 ``` #2.三元(運算符)表達式?: ```C# x?y:z //表示如果表達式x為true,則返回y,如果x為fals ...
1. 可空類型修飾符?
int i? num=null;//表示可空的整型
DateTime time? dateTime=null; //表示可空的時間
2.三元(運算符)表達式?:
x?y:z //表示如果表達式x為true,則返回y,如果x為false,則返回z,是省略if{}else{}的簡單形式。
3.NULL檢查運算符?.
int? first = customers?[0].Orders.Count();
(1)?[ ]
int? first = customers?[0].Orders.Count();
(2)?[]?
public static Delegate? Combine(params Delegate?[]? delegates)
{
if (delegates == null || delegates.Length == 0)
return null;
Delegate? d = delegates[0];
for (int i = 1; i < delegates.Length; i++)
d = Combine(d, delegates[i]);
return d;
}
//params Delegate?[] delegates -它是可為空的數組 Delegate
//params Delegate?[]? delegates -整個數組可以為空
4.空合併運算符??
(1)??
//用於定義引用類型和可空類型的預設值。如果此運算符的左操作數不為Null,則此操作符將返回左操作數,否則返回右操作數。
var c = a??b //當a不為null時返回a,為null時返回b
(2)null 合併賦值運算符??=
僅當左操作數計算為 null 時,才能使用運算符 ??= 將其右操作數的值分配給左操作數。
List<int> numbers = null;
int? i = null;
numbers ??= new List<int>();
numbers.Add(i ??= 17);
numbers.Add(i ??= 20);
Console.WriteLine(string.Join(" ", numbers)); // output: 17 17
Console.WriteLine(i); // output: 17