2010-12-02 153 views

回答

1

有兩個不同的運營商使用'?'

  • Conditional運營商: 條件則:否則 如果條件爲真,那麼 '那麼一部分' 別人 '其他部分',該運營商像的if-else。

  • null-coalescing運營商: 該??運算符稱爲空合併運算符,用於爲可爲空的值類型以及引用類型定義默認值。如果它不是null,則返回左邊的操作數;否則它返回右操作數。 // y = x,除非x爲空,在這種情況下y = -1。 int y = x ?? -1;

9

x ? a : b意味着if (x == true) then a else b

x ?? y意味着if (x != null) then x else y

但因爲兩個扭曲的表情,而不是像IF語句。

,讓你寫var z = x ? a : b;到申報和分配在一個線面相結合的多線的替代,而不是:

type z; 
if (x == true) 
    z = a; 
else 
    z = b; 

Type?Nullable<Type>

+0

添加使用`?`使值類型爲空,並且您有三連擊IMO。 – IAbstract 2010-12-02 04:32:16

+0

是的,忘了那個。添加了編輯 – Cine 2010-12-02 05:27:03

2

速記?是一個三元運算符,正式命名爲C#中的條件運算符。

??是空合併運算符

條件運算符是有用的短,if/else語句

空合併運算符是返回,如果它不爲空一個值有用簡潔,否則返回另一個值(該值上運營商的右側)