Der Typparameter „<Typparametername1>“ muss entweder eine New-Einschränkung oder eine Structure-Einschränkung haben, um der New-Einschränkung für den Typparameter „<Typparametername2>“ zu entsprechen.

Eine Anweisung erstellt einen generischen Typ, der einen Typparameter übergibt, der nicht zur Erfüllung der New -Einschränkung beschränkt ist.

Die New -Einschränkung gibt vor, dass das für den Typparameter angegebene Typargument einen parameterlosen Konstruktor für den Code verfügbar machen muss, der Objekte daraus erstellt. Alle Werttypen verfügen über parameterlose Konstruktoren, jedoch nicht alle Verweistypen. Daher erfüllt die Structure -Einschränkung die New -Einschränkung, aber die Class -Einschränkung bzw. eine Klasse oder ein Schnittstellenname nicht.

Dieser Fehler kann durch die folgenden Anweisungen generiert werden.

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

Wenn die Klasse c2 ein Objekt aus c1erstellt, erfüllt der Typparameter u nicht die New -Einschränkung für den Typparameter t.

Fehler-ID: BC32084

So beheben Sie diesen Fehler

  • Wenn der Typparameter, der dem generischen Typs übergeben werden soll, die Structure - oder New -Einschränkung erfüllen kann, fügen Sie die entsprechende Einschränkung zur Definition hinzu.

    Public Class c2(Of u As Structure)
    
  • Wenn der Typparameter die Structure - oder New -Einschränkung nicht erfüllen kann, übergeben Sie ihn nicht an den generischen Typ. Sie müssen ein anderes Element als Typargument übergeben.

Siehe auch