C# ? 問號使用方式

常常老是忘記一些平常不常用的語法,順便筆記一下,
經常看到有些程式會有這樣的用法,如下
1. int? number;
2. txtName.Text.Trim().Length == 0 ? null : txtName.Text.Trim()
3 .a??0

第一種的意思
?(單問號),是System.Nullable<T>的縮寫形式,可null類型。

第二種的意思
? 為三元運算符,在上面例子中,就等於是
1if (txtName.Text.Trim().Length == 0)
2{
3    取 null;
4}
5else
6{
7    取 txtName.Text.Trim();
8}

第三種的意思
??(雙問號),意思是取所賦值??左邊的,如果左邊為null,取所賦值??右邊的,所以上面例子等於是
1if (a==null)
2     {
3        取 0;       
4     }
5     else
6     {
7        取 a;
8     }


留言