ホームページ > バックエンド開発 > C#.Net チュートリアル > C#の困難を一つずつ解決する(8): Nullable型 System.Nullable

C#の困難を一つずつ解決する(8): Nullable型 System.Nullable

黄舟
リリース: 2016-12-22 14:24:07
オリジナル
1421 人が閲覧しました

null と void

null 値は、データ型に値が割り当てられていないことを示すために使用されます。void は、型が存在しないこと、または値が存在しないことを意味します。 null と void の違いは、void は何もないのに対し、null は中に何も入っていない空のボックスであると考えることができます。

Null 値は参照型にのみ割り当てることができます。ここで、文字列も参照型であることに注意してください。参照型は C では「ポインター」と呼ばれ、変数の場所が格納されるメモリ空間の場所です。変数を null に設定すると、参照が明示的に設定され、メモリの場所自体を指すことはありません。

値の型に null 値を割り当てると、コンパイル エラーが発生します。

C#の困難を一つずつ解決する(8): Nullable型 System.Nullable

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 型であり、同時にプログラムが実行されます。その結果、データは表示されません

C#の困難を一つずつ解決する(8): Nullable型 System.Nullable

GetType() を使用してその型を表示すると、System.NullReferenceException がスローされます

System.Nullable<int> i = null; 
Console.WriteLine( i.GetType());
ログイン後にコピー

C#の困難を一つずつ解決する(8): Nullable型 System.Nullable

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#の困難を一つずつ解決する(8): Nullable型 System.Nullable

上記は、C# の難しい問題を 1 つずつ説明した内容です (8): Nullable 型 System.Nullable 関連する内容については、PHP 中国語 Web サイト (m.sbmmt.com) に注目してください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート