Visual Basic .NET Language
Genéricos
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)
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)
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.