ジェネリック コードの default キーワード (C# プログラミング ガイド)

更新 : 2007 年 11 月

ジェネリック クラスとジェネリック メソッドでは、あらかじめ以下の情報を把握していない場合に、パラメータ化された型 T に既定値を割り当てる方法が 1 つの問題となります。

  • T が参照型か値型か

  • T が値型の場合、数値か構造体か

パラメータ化された型 T の変数がある場合、ステートメント t = null は、T が参照型のときにのみ有効です。また、t = 0 は、数値では機能しますが、構造体では機能しません。この問題を解決するには、default キーワードを使用します。このキーワードは、参照型の場合には null を返し、数値の値型にはゼロを返します。構造体の場合、ゼロまたは null (値型か参照型かによって変わります) に初期化された構造体の各メンバを返します。GenericList<T> クラスで default キーワードを使用する方法の例を次に示します。詳細については、「ジェネリックの概要 (C# プログラミング ガイド)」を参照してください。

public class GenericList<T>
{
    private class Node
    {
        //...

        public Node Next;
        public T Data;
    }

    private Node head;

    //...

    public T GetNext()
    {
        T temp = default(T);

        Node current = head;
        if (current != null)
        {
            temp = current.Data;
            current = current.Next;
        }
        return temp;
    }
}

参照

概念

C# プログラミング ガイド

参照

ジェネリック (C# プログラミング ガイド)

ジェネリック メソッド (C# プログラミング ガイド)

System.Collections.Generic

その他の技術情報

.NET Framework におけるジェネリック