Le paramètre de type '<NomParamètreDeType1>' doit avoir une contrainte 'New' ou une contrainte 'Structure' pour satisfaire la contrainte 'New' pour le paramètre de type '<NomParamètreDeType2>'
Mise à jour : novembre 2007
Type parameter '<typeparametername1>' must have either a 'New' constraint or a 'Structure' constraint to satisfy the 'New' constraint for type parameter '<typeparametername2>'
Une instruction construit un type générique en passant un paramètre de type qui n'est pas contraint pour satisfaire une contrainte New.
La contrainte New signifie que l'argument de type fourni à ce paramètre de type doit exposer un constructeur sans paramètre accessible au code qui crée des objets à partir de celui-ci. Tous les types valeur ont des constructeurs sans paramètres, mais pas tous les types référence. Par conséquent, la contrainte Structure satisfait la contrainte New, mais pas la contrainte Class, ou un nom de classe ou d'interface.
Les instructions suivantes peuvent générer ce message d'erreur.
Public Class c1(Of t As New)
End Class
Public Class c2(Of u)
Public testObject As New c1(Of u)
End Class
Lorsque la classe c2 crée un objet de c1, le paramètre de type u ne satisfait pas la contrainte New sur le paramètre de type t.
ID d'erreur : BC32084
Pour corriger cette erreur
Si le paramètre de type à passer au type générique peut satisfaire la contrainte Structure ou New, ajoutez la contrainte appropriée à sa définition.
Public Class c2(Of u As Structure)
Si le paramètre de type ne peut pas satisfaire la contrainte Structure ou New, ne le passez pas au type générique. Vous devez passer un autre élément comme argument de type.
Voir aussi
Concepts
Types génériques en Visual Basic
Types valeur et types référence