「C#初学者向け:nullの基礎と安全な扱い方」


1. nullとは?

null は「何も参照していない」という状態を表します。参照型の変数にはデータそのものではなく、そのデータが格納されている「場所」(アドレス)が保存されますが、null はその「場所」が未設定であることを示します。

実生活の例

  • 空の箱: 箱(変数)はあるけど、中に何も入っていない(null)。
  • 住所が不明な手紙: 手紙(変数)はあるけど、送り先の住所(データの場所)がわからない(null)。

2. nullの使い方

例 1: 初期化していない変数

string name; // 初期化されていない変数

この状態では、C#では明示的に初期化しない限りエラーになります。

例 2: nullを明示的に代入

string name = null; // 「まだ何も値を入れていない」という状態

null を使うことで、「今は値がないけど、後で何かを設定する予定」と意図を示すことができます。


3. nullに関する注意点

(1) nullを使った変数をそのまま操作するとエラー

null の変数に何か操作をしようとすると、NullReferenceException というエラーが発生します。

例:

string name = null;
Console.WriteLine(name.Length); // エラー:`null` のため長さを取得できない

(2) nullかどうかをチェックする

null を操作する前に、必ずチェックするのが良い習慣です。

例:

string name = null;

if (name != null)
{
    Console.WriteLine(name.Length);
}
else
{
    Console.WriteLine("nameはnullです。");
}

4. nullを使う場面

(1) 初期値をまだ決めていないとき

データをまだ取得していない、または決めていないときに null を利用します。

string userName = null; // ユーザー名がまだ入力されていない状態

(2) データが存在しない場合を表現する

null を使って「データが存在しない」ことを示します。

string GetUserName(int userId)
{
    if (userId == 1)
    {
        return "田中さん";
    }
    return null; // 見つからない場合は null を返す
}

5. nullを安全に扱う工夫

(1) null条件演算子 (?.)

null を安全に操作するために、C#では ?. という演算子があります。

例:

string name = null;

// name が null の場合、エラーにならず null を返す
int? length = name?.Length;

Console.WriteLine(length); // 出力: 

(2) null合体演算子 (??)

null の場合にデフォルト値を設定することもできます。

例:

string name = null;

// nullの場合は「未設定」を表示
Console.WriteLine(name ?? "未設定"); // 出力: 未設定

6. まとめ

  • null は「何も参照していない」という状態を表す特別な値
  • null を操作しようとするとエラーになるため、必ず null かどうかを確認する。
  • C#では ?.?? を使うと null を安全に扱える。

null を理解するとプログラムのエラーを減らし、より良いコードを書くことができるようになります!

C#,参照型

Posted by hidepon