C 中「?」有三種用法

2021-09-20 19:46:11 字數 516 閱讀 7312

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

2、三元(運算子)表示式(?:):例如 int a=b>0?4:5 如果b大於0 則返回a=4 否則a=5.

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

C 中new三種用法

new operator new的表示式 string str new string abcde 既分配記憶體也初始化物件 operator new new的操作符 void buff operator new sizeof string 類似於malloc 只分配空間不進行初始化 placemen...

C 中 的三種用法

可null型別修飾符 對於一些不能為null的型別可以通過?的修飾使其為null。其中user?id可以很方便的來查詢例項的屬性的值而不用預先判斷例項是否為null。三元表示式 int value 1 1 1 0 判斷1 1返回true還是false,返回true就返回1,返回false就返回0 n...

java this 三種用法

public class thisdemo class student override public string tostring 列印結果 student name null,age 0 賦值沒有成功,說明 name 區域性變數 name 區域性變數 而不是name 成員變數 name 區域性...