摘要:[C#] ?? 運算子
之前有介紹過 可為 Null 的型別 ,這邊繼續玩弄【 ?? 】 運算子。
Introduction
先附上 MSDN 參考連結:msdn.microsoft.com/zh-tw/library/ms173224.aspx
?? 運算子稱為 null 聯合運算子,用來定義可為 null 的實值型別和參考型別的預設值。運算子如果不是 null 就會傳回左方運算元,否則傳回右運算元。
Example
class Program { static int? GetNullableInt() { return null; } static string GetStringValue() { return null; } static float? GetNullableFloat() { return null; } private static int g; //類別層級變數可不指定初值。 static void Main(string[] args) { // ?? operator example. int? x = null; // y = x, unless x is null, in which case y = -1. int y = x ?? -1; // Assign i to return value of method, unless // return value is null, in which case assign // default value of int to i. int i = GetNullableInt() ?? default(int); float f = GetNullableFloat() ?? default(float); string ss = string.Empty; string s = GetStringValue(); Console.WriteLine("x = " + x); Console.WriteLine("g = " + g); Console.WriteLine("y = " + y); Console.WriteLine("i = " + i); Console.WriteLine("f = " + f); Console.WriteLine("s = " + s); Console.WriteLine("ss = " + ss); // ?? also works with reference types. // Display contents of s, unless s is null, // in which case display "Unspecified".] Console.WriteLine(s ?? "Unspecified"); Console.Read(); } }
注意事項
類別層級的變數宣告與區域變數的宣告,在設定初始值是有個別限制的(因為我也是最近才被提醒的)。
觀察上述例子,觀察變數的值,我想我們都能體會的。
三小俠 小弟獻醜,歡迎指教