new 制約 (C# リファレンス)

new 制約は、ジェネリック クラスかメソッド宣言内の型引数に、パブリックでパラメーターなしのコンストラクターが必要であることを指定します。 new 制約を使用する場合、型を抽象型にすることはできません。

new 制約は、次の例に示すように、ジェネリック クラスである型の新しいインスタンスを作成する場合に型パラメーターに適用されます。

class ItemFactory<T> where T : new()
{
    public T GetNewItem()
    {
        return new T();
    }
}

new() 制約を別の制約と併用する場合、この制約を最後に指定する必要があります。

public class ItemFactory2<T>
    where T : IComparable, new()
{  }

詳細については、「型パラメーターの制約」を参照してください。

new キーワードは、型のインスタンスの作成に使用することも、またはメンバーの宣言修飾子として使用することもできます。

C# 言語仕様

詳細については、C# 言語仕様の「型パラメーターの制約」セクションを参照してください。

関連項目