컴파일러 오류 CS0304

오류 메시지

'type' 변수 형식에 new() 제약 조건이 없으므로 이 변수 형식의 인스턴스를 만들 수 없습니다.

이 오류는 형식 변수에서 new() 제약 조건을 지정하지 않고 new를 사용하여 형식 변수의 인스턴스를 만드는 경우에 발생합니다. new() 제약 조건을 사용하여 기본 생성자가 있음을 보장하는 경우에만 new를 사용하여 알 수 없는 형식에 대한 생성자를 직접 호출할 수 있습니다. 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
   }
}