Buscar..


Crear una clase genérica

Se crea un tipo genérico para adaptarse de modo que la misma funcionalidad pueda ser accesible para diferentes tipos de datos.

Public Class SomeClass(Of T)
    Public Sub doSomething(newItem As T)
        Dim tempItem As T
        ' Insert code that processes an item of data type t.
    End Sub
End Class

Instancia de una clase genérica

Al crear una instancia de la misma clase con un tipo diferente dado, la interfaz de la clase cambia según el tipo dado.

Dim theStringClass As New SomeClass(Of String)
Dim theIntegerClass As New SomeClass(Of Integer)

introduzca la descripción de la imagen aquí

Definir una clase 'genérica'

Una clase genérica es una clase que se adapta a un tipo dado posteriormente para que la misma funcionalidad se pueda ofrecer a diferentes tipos.

En este ejemplo básico se crea una clase genérica. Tiene un sub que usa el tipo genérico T. Al programar esta clase, no sabemos el tipo de T. En este caso, T tiene todas las características de Objeto.

Public Class SomeClass(Of T)
    Public Sub doSomething(newItem As T)
        Dim tempItem As T
        ' Insert code that processes an item of data type t.
    End Sub
End Class

Usa una clase genérica

En este ejemplo hay 2 instancias creadas de la Clase SomeClass. Dependiendo del tipo dado, las 2 instancias tienen una interfaz diferente:

Dim theStringClass As New SomeClass(Of String)
Dim theIntegerClass As New SomeClass(Of Integer)

introduzca la descripción de la imagen aquí introduzca la descripción de la imagen aquí

La clase genérica más famosa es la lista (de)

Limite los tipos posibles dados

Los posibles tipos pasados ​​a una nueva instancia de SomeClass deben heredar SomeBaseClass. Esto también puede ser una interfaz. Las características de SomeBaseClass son accesibles dentro de esta definición de clase.

Public Class SomeClass(Of T As SomeBaseClass)
    Public Sub DoSomething(newItem As T)
        newItem.DoSomethingElse()
        ' Insert code that processes an item of data type t.
    End Sub
End Class

Public Class SomeBaseClass
    Public Sub DoSomethingElse()
    End Sub
End Class

Crear una nueva instancia del tipo dado

La creación de una nueva instancia de un tipo genérico se puede realizar / realizar en el momento de la compilación.

Public Class SomeClass(Of T As {New})
    Public Function GetInstance() As T
        Return New T
    End Function
End Class

O con tipos limitados:

Public Class SomeClass(Of T As {New, SomeBaseClass})
    Public Function GetInstance() As T
        Return New T
    End Function
End Class

Public Class SomeBaseClass
End Class

La baseClass (si ninguna es un Objeto dado) debe tener un parámetro menos constructor.

Esto también se puede hacer en tiempo de ejecución a través de la reflexión.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow