動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

パターン3: where T : new() —引数なしコンストラクタを持つ型のみ

出典: C# Generic 制約 (where T : …) — 業務SE が型安全コードを書く5パターンパターン3: where T : new() —引数なしコンストラクタを持つ型のみ

パターン3: where T : new() —引数なしコンストラクタを持つ型のみ (csharp)#4b27b8ab4d3c
// ❌制約なしだと実行時MissingMethodExceptionリスクあり
public class FactoryBroken<T>
{
    public T Create()
    {
        return new T();  // Tが引数必須コンストラクタの型だと実行時エラー
    }
}
 
// ✅ new()制約でコンパイル時に保証
public class Factory<T> where T : new()
{
    public T Create()
    {
        return new T();  // OK: Tは引数なしコンストラクタを持つことが保証されてる
    }
}
 
//使い方
var factory = new Factory<User>();   // Userクラスに引数なしコンストラクタが必要
var user = factory.Create();         // new User()相当
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #4b27b8ab4d3c
  • lines: 21
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「パターン3: where T : new() —引数なしコンストラクタを持つ型のみ」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

9
図鑑トップ