Эти две статусы эквивалентны?Начинающий вопрос о дженериках
Public Class Class2(Of X As Class1)
Public Class Class2(Of X As {Class1})
Что означает «Новый»?
Public Class Class2(Of X As {Class1, New})
Эти две статусы эквивалентны?Начинающий вопрос о дженериках
Public Class Class2(Of X As Class1)
Public Class Class2(Of X As {Class1})
Что означает «Новый»?
Public Class Class2(Of X As {Class1, New})
Ваши первые два утверждения эквивалентны. Кудрявые скобки заключаются в том, как использовать несколько общих ограничений в VB.NET. В вашем случае, даже если есть скобки, существует только одно ограничение.
Ключевое слово New
- это ограничение, которое гарантирует, что тип T
имеет конструктор, который не принимает параметров. Таким образом, ваше второе определение гарантирует, что T
есть или наследуется от Class1
и имеет безпараметрический конструктор.
Прочитайте эти ссылки:
Спасибо. Могу ли я создать ограничение, чтобы потребовать конструктор с другой подписью? Например, Public Class Class2 (Of X As {Class1, New (y as integer)}). Я получаю сообщение об ошибке .... – ChadD
@ Велика - Нет. Это невозможно. –