Параметр типа <имяПараметраТипа1> должен иметь либо ограничение New или Structure, чтобы удовлетворять ограничению New параметра типа <имяПараметраТипа2>
Обновлен: Ноябрь 2007
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 не удовлетворяет ограничениям New для параметра типа t.
Идентификатор ошибки: BC32084
Чтобы исправить данную ошибку
Если передаваемый параметр типа может удовлетворять ограничению Structure или New, следует добавить к его определению соответствующее ограничение.
Public Class c2(Of u As Structure)
Если параметр типа не удовлетворяет ограничению Structure или New, не следует передавать его в универсальный тип. Следует передать в качестве аргумента типа что–нибудь другое.
См. также
Основные понятия
Универсальные типы в Visual Basic
Типы значений и ссылочные типы