C# ??運算子 當左邊是null時,回傳右邊的值

  • 28478
  • 0
  • .Net
  • 2010-10-12

在寫JavaScript時,會下 var b = a || "test",當a是null時,b的值為test,用起來多簡捷,C# 也有這樣的語法,?? 運算子,當左邊是null時,回傳右邊的值。

在寫JavaScript時,會下 var b =  a || "test",當a是null時,b的值為test,用起來多簡捷,C# 也有這樣的語法,?? 運算子,當左邊是null時,回傳右邊的值。 


string a;
string b;

//寫法A
if (a == null)
{
    b = "test";
}
else
{
    b = a;}

//寫法B
b = a == null ? "test" : a;

//新寫法
b = a ?? "test"; //是不是簡捷許多呢?
NOTE:
因為C#是強型別的,?? 的左右二邊與賦值,一定要是同型別或可以隱含轉換的值才行

string a = null;
string b = a ?? 1; //必需3個都是String才行

 

參考資料

?? 運算子