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

  1. Abra en Visual Studio una aplicación de Visual Basic nueva o existente.

  2. 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
    
  3. 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()>
    
  4. 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

Module (Instrucción)

ExtensionAttribute

Conceptos

Métodos de extensión (Visual Basic)

Argumentos y parámetros de procedimiento (Visual Basic)

Ámbito en Visual Basic