null と void
null 値は、データ型に値が割り当てられていないことを示すために使用されます。void は、型が存在しないこと、または値が存在しないことを意味します。 null と void の違いは、void は何もないのに対し、null は中に何も入っていない空のボックスであると考えることができます。
Null 値は参照型にのみ割り当てることができます。ここで、文字列も参照型であることに注意してください。参照型は C では「ポインター」と呼ばれ、変数の場所が格納されるメモリ空間の場所です。変数を null に設定すると、参照が明示的に設定され、メモリの場所自体を指すことはありません。
値の型に null 値を割り当てると、コンパイル エラーが発生します。
void はメソッドの値を返すために使用されますが、その本質はデータ型ではなく、データ型が存在しないことを示すためにのみ使用されます。
System.Nullable
C#では値の型にnull値を代入することができず、ここでの値の型にはstructも含まれます。その理由は、値型には参照を含めることができず、null は「なし」参照として、値型によって参照できないためです。実際のアプリケーションでは、int のデータ型がその値を決定できない場合、これによっていくつかの問題が発生します。ここでは、null 許容型を使用する必要があります。
System.Nullable<int> i = null; Console.WriteLine(i);
このとき、int型iをnull型として宣言することができ、同時にプログラムの実行結果ではデータが表示されないことがわかります
System.Nullable<int> i = null; Console.WriteLine(i);
このとき、int型iを次のように宣言できます。 null 型であり、同時にプログラムが実行されます。その結果、データは表示されません
GetType() を使用してその型を表示すると、System.NullReferenceException がスローされます
System.Nullable<int> i = null; Console.WriteLine( i.GetType());
System.Nullable< ;T> は、System.Nullable< int? のように、T? と省略できます。 Null 許容型は、ADO.NET プログラミングで広く使用されています。
さらに、Nullable 型のインスタンスには HasValue メンバーと Value メンバーがあり、HasValue が値を持つかどうかを示す bool 型です。HasValue が値を持つ場合、Value はインスタンスの値を示します。 false の場合、System.InvalidOperationException 例外がトリガーされます。
int? i = null; Console.WriteLine(i.HasValue); Console.WriteLine(i.Value);
上記は、C# の難しい問題を 1 つずつ説明した内容です (8): Nullable 型 System.Nullable 関連する内容については、PHP 中国語 Web サイト (m.sbmmt.com) に注目してください。