C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のnull許容型(Nullable型)とは?使い方をサンプルコード付きで解説

C#のnull許容型(Nullable型)とは

C#では「null許容型(Nullable型)」が提供されており、通常の値の範囲に加えてnullを代入することができます。

例えば、Nullable<int>型の変数には、-2,147,483,648から2,147,483,647までの任意の整数値、またはnullを格納できます。同様に、Nullable<bool>型の変数には、true、false、またはnullを代入可能です。

値型(intやdouble、boolなど)は本来nullを持てませんが、null許容型にすることで「値が存在しない」状態を表現できるようになり、データベースのNULL値や未入力項目の扱いなどで非常に便利です。

構文

null許容型の宣言は、以下の構文で行います。

<data_type> ? <variable_name> = null;

記述例

int? num1 = null;

このように、データ型の後ろに「?」を付けるだけで、その型はnullを許容するようになります。「int?」は「Nullable<int>」の省略表記です。

null許容型の主なプロパティとメソッド

  • HasValue:値が設定されているかどうかを判定します。値があればtrue、nullならfalseを返します。
  • Value:設定されている値を取得します。nullの状態でアクセスするとInvalidOperationExceptionが発生するため注意が必要です。
  • GetValueOrDefault():nullの場合に既定値(0やfalseなど)を返すため、安全に値を取り出せます。

null許容型を使った完全なサンプルコード

以下は、null許容データ型を実際に扱う完全なサンプルプログラムです。

using System;

namespace Demo {
    class Program {
        static void Main(string[] args) {
            int? num1 = null;
            int? num2 = 45;

            double? num3 = new double?();
            double? num4 = 3.14157;

            bool? boolval = new bool?();

            // 値を表示する
            Console.WriteLine("Nullables at Show: {0}, {1}, {2}, {3}", num1, num2, num3, num4);
            Console.WriteLine("A Nullable boolean value: {0}", boolval);
            Console.ReadLine();
        }
    }
}

実行結果

Nullables at Show: , 45, , 3.14157
A Nullable boolean value:

この出力から分かるように、nullが代入された変数(num1、num3、boolval)は空として表示され、値が設定された変数(num2、num4)は通常どおり表示されます。new double?()のようにコンストラクタを使って生成した場合も、既定ではnullになります。

  1. C言語の基本データ型を徹底解説!int・char・floatの種類とサイズ一覧

    C言語の基本データ型とは? C言語のコンパイラがサポートする基本データ型は、大きく分けて次の4つです。 整数型(Integer) 文字型(Character) 浮動小数点型(Floating-point) 倍精度浮動小数点型(Double precision floating point) プログラムで扱う値の種類(整数・文字・実数など)に応じて適切な型を選ぶことは、正確で効率的なコードを書くための第一歩です。なお、各データ型のサイズや表現できる値の範囲は、使用するコンパイラや実行環境によって異なる場合がある点に注意してください。 整数型(Integral Data Type) 整数型は

  2. Python 3の標準データ型とは?数値・シーケンス・辞書の基本をわかりやすく解説

    Python 3の標準データ型の概要Python 3に標準で用意されているデータ型は、大きく分けて「数値型」「シーケンス型」「辞書(ディクショナリ)型」の3つに分類できます。辞書はキーと値のペアを格納するコレクションであり、Pythonプログラミングにおいて最も頻繁に使われるデータ構造の一つです。数値型(Numeric Types)数値型には「整数(int)」「浮動小数点数(float)」「複素数(complex)」の3種類があります。整数(int):小数点を含まない整数値です。例:10、-10浮動小数点数(float):小数部分を持つ実数です。例:1.55、0.005複素数(complex)