C# 的冷知識:@,?,??,?: 的用法
直接貼上一段代碼,先看下面的代碼
public struct Vector{
int x;
int y;
public Vector(int x, int y){
this.x = x;
this.y = y;
}
}
public class MyClass {
static int Func1(string @string, Vector? vector = null){
string @return = "xxx";
Vector? v1 = new Vector(0, 0);
Vector? v2 = null;
vector = v1 ?? v2;
vector = @return == "" ? v1 : v2;
return 0;
}
}
1. @
用法
@
除了轉義字符串之外,還有另一個用處,就是修飾參數字段,被@修飾的參數字段,如果是語法中關鍵字,它將失去它的意義,例如Func1中的@string和@return,當然,原有的關鍵字依然可以使用。
2. ?
用法
?
跟在類型後面,作用是:讓一個不能爲null
的類型變量可以爲null
例如Vector
結構體不能爲null
,加上?
後就可以複製null
了。
3. ??
用法
??
是判斷連個表達式或者兩個變量,意義爲:??
左邊不爲null
返回左邊的值,否則發返回右邊的值。注意,如果多個連續運算,如v1 ?? v2 ?? v3
,是從右往左運算的,及v1 ?? (v2 ?? v3)
4. ?:
用法
?:
就是三元原運算符,意義爲:判斷?
左邊表達式爲ture
還是false
,真則返回:
左邊的值,假則返回:
右邊的值。