問號在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;