C 中的?問號

2021-05-01 18:25:14 字數 657 閱讀 8206

如果你看到c#中的「?」問號腦袋裡便充滿問號,那麼這個貼子便是為你而寫的。有人說「細節決定成敗」,細節就意味著繁瑣,像我這樣浮躁的人現在都已經習慣了繁瑣,如果你還不習慣繁瑣的話,那麼就把這個貼子當作一次練習機會吧。

在c#中「?」有三種用法。

1、可空型別修飾符(?):引用型別可以使用空引用表示乙個不存在的值,而值型別通常不能表示為空,例如:string str=null;是正確的。int i=null;編譯器將報錯。為了使值型別也可為空,可空型別出現了,可空型別使用可空型別修飾符?來表示,表現形式為t?。例:int?表示是可空的整形,datetime?表示為可空的時間。t?其實是system.nullable(泛型結構)的縮寫形式,也就意味著當你用到t?時編譯器在編譯時會把t?編譯成system.nullable的形式,例如:int?,編譯後便是system.nullable的形式。更多細節待續……。

2、三元(運算子)表示式(?:):如果這個你也不了解的話(我很不相信),那你就當我也不了解吧,不再贅述。

3、空合併運算子(??):用於定義可空型別和引用型別的預設值。如果此運算子的左運算元不為 null,則此運算子將返回左運算元;否則返回右運算元。 例:a??b,當a為null時則返回b,a不為空時返回a本身。空合併運算子為右結合運算子,即操作時從右向左進行組合的。如,「a??b??c」的形式按「a??(b??c)」計算。

C 中的問號

c 中的問號 在c 中有個較為重要,而常被一些人忽視的符號 問號 1.可空型別修飾符 t?可空型別的基礎型別可以是任何非可空值型別或任何具有struct約束的型別引數,但不能是可空型別或引用型別。例如 int?代表是可空的整形,而int?則是無效型別。即可空型別可以表示其基礎型別的所有值和乙個額外的...

C 中的問號

c 中的問號 在c 中有個較為重要,而常被一些人忽視的符號 問號 在這裡整理一下它在c 的幾種情況 可空型別修飾符 t?可空型別的基礎型別可以是任何非可空值型別或任何具有struct約束的型別引數,但不能是可空型別或引用型別。例如 int?代表是可空的整形,而int?則是無效型別。即可空型別可以表示...

C 中的問號

c 中的問號 運算子 條件運算子 通常被稱為三元條件運算子,根據 boolean 表示式的值返回兩個值之一。下面是條件運算子的語法。運算子 運算子稱作 null 合併運算子。如果此運算子的左運算元不為 null,則此運算子將返回左運算元 否則返回右運算元。第三個就是型別後面帶乙個問號 如 int?i...