C#クエスチョンマーク演算子Nullable、Ternary、およびNullの組み合わせ

1. null許容型修飾子(?):
参照型はnull参照を使用して存在しない値を表すことができますが、値型は通常nullとして表すことはできません。
例:string str = null;は正しい、int i=null;コンパイラはエラーを報告します。
値型もnull許容にするために、null許容型を使用できます。つまり、null許容型修飾子「?」を使用して表現します。式は「T?」です。
例:int?はnull許容整数、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合体演算子(??):
null許容型と参照型のデフォルト値を定義するために使用されます。この演算子は、この演算子の左オペランドがnullでない場合は左オペランドを返し、そうでない場合は右オペランドを返します。
例:a ?? bは、aがnullの場合はbを返し、aがnullでない場合は自分自身を返します。
null合体演算子は右結合演算子です。つまり、演算は右から左に結合されます。たとえば、「a ?? b ?? c」の形式は、「a ??(b ?? c)」として計算されます。

おすすめ

転載: blog.csdn.net/qq_42672770/article/details/124420439