Создание экземпляра типа 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы