星期四, 9月 14, 2006

? "?? ?: int?"

?在C#中有好多種用法,十在是令人眼花撩亂。

1. ??,這是一個二元運算子,當運算元左方的值為null時,則回傳右方的值
object a = null;
object b = a ?? "abc"; // b為 "abc"

2. ?:,這是一個三元運算子,像是if else的簡化版,在測定條件是否成立時,回傳不同的值!
condition ? first_expression : second_expression; 當條件為真是,回傳first_expression
string s = (1 > 0) ? "大隻熊" : "小隻熊"; //s==大隻熊

3.ValueType ? :System.Nullable!! 這是一個可以放入null的型別,其實也是泛型的一種應用!
int? i = null; //宣告一個可以裝載null的變數,當裝載的值不為null時,具有基礎型別的所有運算功能
if (i.HasValue) MessageBox.Show(i.Value.ToString()); //使用HasValue測定是否有值,不為空時由Value取得值!

0 個意見: