C#のnullable intをintに変換する方法 質問する

C#のnullable intをintに変換する方法 質問する

nullableintを に変換するにはどうすればよいですかint? 以下のように 2 つのタイプの int があるとします。

int? v1;  
int v2; 

v1の値を に代入したいのですv2が、v2 = v1;エラーが発生します。v1に変換するにはどうすればいいですかv2?

ベストアンサー1

これまでの他の回答はすべて正しいのですが、もう少しわかりやすい回答をもう 1 つ追加したいと思います。

v2 = v1 ?? default(int);

Any はNullable<T>暗黙的にその に変換可能ですTが、評価される式全体が ValueType への null 割り当てにならないことが条件です。したがって、null 結合演算子は??三項演算子の単なる構文糖です。

v2 = v1 == null ? default(int) : v1.Value;

...これは、if/else の構文糖衣です。

if(v1==null)
   v2 = default(int);
else
   v2 = v1.Value;

また、.NET 4.0 以降にはNullable<T>「GetValueOrDefault()」メソッドがあり、これは基本的に上記の null 結合を実行する null セーフなゲッターであるため、これも機能します。

v2 = v1.GetValueOrDefault();

おすすめ記事