null許容値型

値型はnullを持てないが、null許容値型にすると、有効な値かnullのどちらかを持てるので、値を持っているかnullかをチェック出来る。

null 許容値型 - C# リファレンス | Microsoft Docs
null許容値型(Nullable<T> 型) - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
Nullable Type

型の後ろに'?'を付けると、null許容値型になる。
null許容値型は、.HasValueで値を持っているかnullかどうかチェックできる。
trueの場合、.Valueで値を取得。

x1 has not Value.
x2 = 10
続行するには何かキーを押してください . . .

x1はnullなので、.HasValueはfalse。
x2は10なので、.HasValueはtrueで、.Valueは10。

Sample/cs/NullableType/NullableType/src/NullableType at master · bg1bgst333/Sample · GitHub