다음을 통해 공유


형식 매개 변수 '<typeparametername2>'에 대한 'New' 제약 조건을 만족하려면 형식 매개 변수 '<typeparametername1>'에 'New' 제약 조건 또는 'Structure' 제약 조건이 있어야 합니다.

업데이트: 2007년 11월

Type parameter '<typeparametername1>' must have either a 'New' constraint or a 'Structure' constraint to satisfy the 'New' constraint for type parameter '<typeparametername2>'

문에서 New 제약 조건을 만족하도록 제약되지 않은 형식 매개 변수를 전달하는 제네릭 형식을 만듭니다.

New 제약 조건은 해당 형식 매개 변수에 제공된 형식 인수가 해당 개체를 만드는 코드에 액세스할 수 있는 매개 변수가 없는 생성자를 노출해야 함을 의미합니다. 모든 값 형식에는 매개 변수가 없는 생성자가 있지만 모든 참조 형식이 그런 것은 아닙니다. 그러므로 Structure 제약 조건은 New 제약 조건을 만족하지만 Class 제약 조건이나 클래스 또는 인터페이스 이름은 그렇지 않습니다.

다음 문을 실행하면 이 오류가 발생할 수 있습니다.

Public Class c1(Of t As New)
End Class
Public Class c2(Of u)
    Public testObject As New c1(Of u)
End Class

클래스 c2에서 c1의 개체를 만들면 형식 매개 변수 u는 형식 매개 변수 t의 New 제약 조건을 만족하지 않습니다.

오류 ID: BC32084

이 오류를 해결하려면

  • 제네릭 형식으로 전달하려는 형식 매개 변수가 Structure 또는 New 제약 조건을 만족할 수 있는 경우 해당 정의에 적절한 제약 조건을 추가합니다.

    Public Class c2(Of u As Structure)
    
  • 형식 매개 변수가 Structure 또는 New 제약 조건을 만족할 수 없는 경우 해당 매개 변수를 제네릭 형식으로 전달하지 마십시오. 형식 인수로 다른 요소를 전달해야 합니다.

참고 항목

개념

Visual Basic의 제네릭 형식

값 형식과 참조 형식

참조

New(Visual Basic)

Structure(Visual Basic)

Class(Visual Basic)