Создание экземпляра типа T - Visual Basic .NET
Формулировка задачи:
Здравствуйте.
Ругается на строку Dim ic As New T: "New нельзя использовать для параметра-типа, у которого нет ограничения New".
Как это исправить?
Разобрался. Объявлять класс надо было так:
Решение задачи: «Создание экземпляра типа T»
textual
Листинг программы
Public Class Collection(Of T) Private list As New List(Of T) Public Sub Sub1() Dim tp As Type = GetType(T) Dim ci As System.Reflection.ConstructorInfo = tp.GetConstructor(New Type() {}) If ci Is Nothing Then Throw New Exception(String.Format("Тип {0} не имеет стандартного или открытого конструктора (без параметров)", tp.Name)) End If Dim ic As T = CType(ci.Invoke(Nothing), T) '... list.Add(ic) End Sub End Class Public Class ItemCollection Public p1 As Integer Public p2 As String Public Sub New() End Sub Sub New(ByVal _p1 As Integer, ByVal _p2 As String) p1 = _p1 p2 = _p2 End Sub End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д