共用方式為


編譯器錯誤 CS0304

更新:2007 年 11 月

錯誤訊息

無法建立變數型別 'type' 的執行個體,因為它沒有 new() 條件約束

如果您使用 new 建立型別變數的執行個體,而該型別變數並未指定 new() 條件約束,便會發生這個錯誤。您不能使用 new 直接叫用 (Invoke) 未知型別的建構函式,除非使用 new() 條件約束確保預設建構函式 (Constructor) 存在。如果您無法使用 new 條件約束,請考慮使用 typeof 運算式存取想要的建構函式。

下列範例會產生 CS0304:

// CS0304.cs
// compile with: /target:library
class C<T>
{
   T t = new T();   // CS0304
}

類別方法中亦不允許使用這種形式的 new 陳述式︰

// CS0304_2.cs
// compile with: /target:library
class C<T>
{
   public void f()
   {
      T t = new T();  // CS0304
   }
}