[C#] 問號的使用

  • 1830
  • 0
  • C#
  • 2018-10-16

問號在C#裡的使用,主要分為三種

//第一種
int? a = null;


//第二種
int a = (b == 1) ? c = 2 : c = 3;


//第三種
int a = (s ?? string.Empty).Length;

第一種

(?)單問號,是System.Nullable<T>的縮寫形式,可null類型

一般而言,只有string可以將值設為null string s = null;

若要讓其他資料型別為null,可使用此法

但跟將資料數值設為null有點不同,是直接將資料型別設定為null type,可參考下方例子

其於詳細使用方法可參考這裡

int? a = null;
int? b = 10;
double? d1 = 3.14;
bool? flag = null;
char? letter = 'a';
int?[] arr = new int?[10];

 

第二種

三元運算子

int b = 1;
int c;
int a = (b == 1) ? c = 2 : c = 3;

等同於

if (b == 1)
{
    c = 2;
    a = 1;//代表為true
}
else
{
    c = 3;
    a = 0;//代表為false
}

 

第三種

(??)雙問號

string s = textBox1.Text;
int a = (s ?? string.Empty).Length;

也就是

int a = ((s == null) ? string.Empty : s).Length;

等同於

if (s == null)
{
    s = string.Empty;
    a = s.Length;
}
else
{
    //s保持原本的設定值
}
a = s.Length;