在C 中 和 分別是什麼意思?

2022-04-11 15:02:59 字數 1287 閱讀 2036

1. 可空型別修飾符(?):

引用型別可以使用空引用表示乙個不存在的值,而值型別通常不能表示為空。

例如:string str=null; 是正確的,int i=null; 編譯器就會報錯。

為了使值型別也可為空,就可以使用可空型別,即用可空型別修飾符"?"來表示,表現形式為"t?"

例如:int? 表示可空的整形,datetime? 表示可為空的時間。

t? 其實是system.nullable(泛型結構)的縮寫形式,也就意味著當你用到t?時編譯器編譯 時會把t?編譯成system.nullable的形式。

例如:int?,編譯後便是system.nullable的形式。

2. 三元(運算子)表示式(?:):

例如:x?y:z 表示如果表示式x為true,則返回y;如果x為false,則返回z,是省略if{}else{}的簡單形式。

3. 空合併運算子(??):

用於定義可空型別和引用型別的預設值。如果此運算子的左運算元不為null,則此運算子將返回左運算元,否則返回右運算元。

例如:a??b 當a為null時則返回b,a不為null時則返回a本身。

空合併運算子為右結合運算子,即操作時從右向左進行組合的。如,「a??b??c」的形式按「a??(b??c)」計算。

1. 可空型別修飾符(?):

引用型別可以使用空引用表示乙個不存在的值,而值型別通常不能表示為空。

例如:string str=null; 是正確的,int i=null; 編譯器就會報錯。

為了使值型別也可為空,就可以使用可空型別,即用可空型別修飾符"?"來表示,表現形式為"t?"

例如:int? 表示可空的整形,datetime? 表示可為空的時間。

t? 其實是system.nullable(泛型結構)的縮寫形式,也就意味著當你用到t?時編譯器編譯 時會把t?編譯成system.nullable的形式。

例如:int?,編譯後便是system.nullable的形式。

2. 三元(運算子)表示式(?:):

例如:x?y:z 表示如果表示式x為true,則返回y;如果x為false,則返回z,是省略if{}else{}的簡單形式。

3. 空合併運算子(??):

用於定義可空型別和引用型別的預設值。如果此運算子的左運算元不為null,則此運算子將返回左運算元,否則返回右運算元。

例如:a??b 當a為null時則返回b,a不為null時則返回a本身。

空合併運算子為右結合運算子,即操作時從右向左進行組合的。如,「a??b??c」的形式按「a??(b??c)」計算。

在C 中 和 分別是什麼意思?

可空型別修飾符 引用型別可以使用空引用表示乙個不存在的值,而值型別通常不能表示為空。例如 string str null 是正確的,int i null 編譯器就會報錯。為了使值型別也可為空,就可以使用可空型別,即用可空型別修飾符 來表示,表現形式為 t?例如 int?表示可空的整形,datetim...

在C 中 和 分別是什麼意思?

1.可空型別修飾符 引用型別可以使用空引用表示乙個不存在的值,而值型別通常不能表示為空。例如 string str null 是正確的,int i null 編譯器就會報錯。為了使值型別也可為空,就可以使用可空型別,即用可空型別修飾符 來表示,表現形式為 t?例如 int?表示可空的整形,datet...

在C 中 和 分別是什麼意思

可空型別修飾符 引用型別可以使用空引用表示乙個不存在的值,而值型別通常不能表示為空。例如 string str null 是正確的,int i null 編譯器就會報錯。為了使值型別也可為空,就可以使用可空型別,即用可空型別修飾符 來表示,表現形式為 t?例如 int?表示可空的整形,datetim...