Cómo: Escribir un método de extensión (Visual Basic)
Los métodos de extensión permiten agregar métodos a una clase existente. Se puede llamar al método de extensión como si fuera una instancia de esa clase.
Para definir un método de extensión
Abra en Visual Studio una aplicación de Visual Basic nueva o existente.
En la parte superior del archivo en el que desea definir un método de extensión, incluya la instrucción de importación siguiente:
Imports System.Runtime.CompilerServices
Dentro de un módulo de una aplicación nueva o existente, comience la definición de método con el atributo de extensión:
<Extension()>
Declare el método como lo haría normalmente, salvo que el tipo del primer parámetro debe ser el tipo de datos que desea extender.
<Extension()> Public Sub subName (ByVal para1 As ExtendedType, <other parameters>) ' < Body of the method > End Sub
Ejemplo
En el ejemplo siguiente se declara un método de extensión en un módulo StringExtensions. Un segundo módulo, Module1, importa StringExtensions y llama al método. Cuando se llama al método de extensión, debe estar en ámbito. El método de extensión PrintAndPunctuate extiende la clase String con un método que muestra la instancia de la cadena seguida de una cadena de signos de puntuación enviada como un parámetro.
' Declarations will typically be in a separate module.
Imports System.Runtime.CompilerServices
Module StringExtensions
<Extension()>
Public Sub PrintAndPunctuate(ByVal aString As String,
ByVal punc As String)
Console.WriteLine(aString & punc)
End Sub
End Module
' Import the module that holds the extension method you want to use,
' and call it.
Imports ConsoleApplication2.StringExtensions
Module Module1
Sub Main()
Dim example = "Hello"
example.PrintAndPunctuate("?")
example.PrintAndPunctuate("!!!!")
End Sub
End Module
Observe que el método se define con dos parámetros y se llama solamente con uno. El primer parámetro, aString, en la definición de método se enlaza a example, la instancia de String que llama al método. El resultado del ejemplo es el siguiente:
Hello?
Hello!!!!
Vea también
Referencia
Conceptos
Métodos de extensión (Visual Basic)