decimal
誰かがanddecimal?
またはint
andの違いを理解するのを手伝ってくれますint?
か?
いつそれらを使用する必要があり、それらのいずれかを使用することの利点は何ですか。
?を含むデータ型 null許容型です。null値も保持できます
このソースリンクを確認してください
- null許容型は、nullの値を割り当てることができる値型変数を表します。参照型に基づいてnull許容型を作成することはできません
。(参照型はすでにnull値をサポートしています。)- 構文T?(C#では)System.Nullableの省略形です。ここで、Tは値型です。2つの形式は交換可能です。
通常の値型の場合と同じ方法で、null許容型に値を割り当てます。次に例を示します。C#:
int? x = 10; or double? d = 4.108;
VB.NET:
Dim x As Nullable(Of Integer) = 10
またはDim d As Nullable(Of Double) = 4.108
System.Nullable.GetValueOrDefaultメソッドを使用して、割り当てられた値、または値がnullの場合は基になる型のデフォルト値を返します。
C#:int j = x.GetValueOrDefault();
VB.NET:
Dim j as Integer = x.GetValueOrDefault()
HasValueおよびValue読み取り専用プロパティを使用して、nullをテストし、値を取得します。
- HasValueプロパティは、変数に値が含まれている場合はtrueを返し、nullの場合はfalseを返します。
- Valueプロパティは、値が割り当てられている場合は値を返し、割り当てられていない場合はSystem.InvalidOperationExceptionがスローされます。
- null許容型変数のデフォルト値は、HasValueをfalseに設定します。値は未定義です。
C#4.0では- 使用 ??
(C#)演算子を使用して、現在の値がnullであるnull許容型がnull許容型ではない型に割り当てられたときに適用されるデフォルト値を割り当てます。
int? x = null;
int y = x ?? -1;
後の?
型は、null許容であることを示しています。int?
およびdecimal?
はとの省略形Nullable<int>
ですNullable<decimal>
。
これにより、変数はその型またはnull値を保持できます。
?formは、null許容値型であることを意味します。Nullable<decimal>
またはのショートカットですNullable<int>
。これを使用するのに適したタイミングは、その変数に値が割り当てられていないことを示したい場合です。
ユースケースの1つは、のようなものがありDateTime
、まだ値を割り当てていないことを示したい場合です。1970年1月1日のように「魔法の日付」に設定するのではなく、nullに設定できます。はるかに簡単です!