Menu
Coddy logo textTech

Null Reference Basics

CoddyのC#ジャーニー「ロジックとフロー」セクションの一部 — レッスン 31/66。

C# では、null 参照はオブジェクトの不在を表します。null 値の扱い方を理解することは、堅牢なコードを書くために不可欠です。

値を割り当てずに参照型の変数(例: string)を宣言する:

string name = null;

変数 'name' は現在 null 参照を保持しており、メモリ内のどのオブジェクトにも指していないことを意味します。

チェックせずに null 参照を使用しようとすると、ランタイム エラーが発生します:

string name = null;
// This will throw a NullReferenceException
int length = name.Length;

参照を使用する前に、それが null かどうかをチェックできます:

string name = null;
if (name != null)
{
    // Safe to use name here
    int length = name.Length;
}

変数に null 以外の値を代入することもできます:

string name = null;
name = "John";
// Now it's safe to use name
int length = name.Length; // length will be 4
challenge icon

チャレンジ

簡単

ProcessName という名前のメソッドを作成し、name という名前の文字列パラメータを受け取ってください。このメソッドは次のことを行います:

  1. name が null かどうかをチェックします
  2. name が null の場合、「Name is null」と出力します
  3. name が null でない場合、「Name length is X」と出力します(ここで X は name の長さです)

チートシート

C# では、null 参照はオブジェクトの不在を表します。

null で参照型変数を宣言します:

string name = null;

null 参照をチェックせずに使用すると、実行時エラーが発生します:

string name = null;
// NullReferenceException がスローされます
int length = name.Length;

使用前に null をチェックします:

string name = null;
if (name != null)
{
    // ここで name を安全に使用できます
    int length = name.Length;
}

使用を安全にするために、非 null 値を割り当てます:

string name = null;
name = "John";
int length = name.Length; // length は 4 になります

自分で試してみよう

using System;

class Program
{
    public static void ProcessName(string name)
    {
        // ここにコードを書いてください
    }
    
    static void Main(string[] args)
    {
        string input = Console.ReadLine();
        
        // "null" 文字列を実際の null に変換
        string name = input.ToLower() == "null" ? null : input;
        
        ProcessName(name);
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン