Cara: Menulis Metode Ekstensi (Visual Basic)

Metode ekstensi memungkinkan Anda menambahkan metode ke kelas yang ada. Metode ekstensi dapat dipanggil seolah-olah itu adalah instans kelas tersebut.

Untuk menentukan metode ekstensi

  1. Buka aplikasi Visual Basic baru atau yang sudah ada di Visual Studio.

  2. Di bagian atas file tempat Anda ingin menentukan metode ekstensi, sertakan pernyataan impor berikut:

    Imports System.Runtime.CompilerServices
    
  3. Dalam modul di aplikasi baru atau yang sudah ada, mulai definisi metode dengan <Extension> atribut :

    <Extension()>
    

    Perhatikan bahwa Extension atribut hanya dapat diterapkan ke metode ( Sub atau Function prosedur) dalam Modul Visual Basic. Jika Anda menerapkannya ke metode di Class atau Structure, pengkompilasi Visual Basic menghasilkan kesalahan BC36551, "Metode ekstensi hanya dapat ditentukan dalam modul."

  4. Deklarasikan metode Anda dengan cara biasa, kecuali bahwa jenis parameter pertama harus berupa jenis data yang ingin Anda perluas.

    <Extension()>
    Public Sub SubName(para1 As ExtendedType, <other parameters>)
         ' < Body of the method >
    End Sub
    

Contoh

Contoh berikut mendeklarasikan metode ekstensi dalam modul StringExtensions. Modul kedua, Module1, mengimpor StringExtensions dan memanggil metode . Metode ekstensi harus berada dalam cakupan ketika dipanggil. Metode PrintAndPunctuate ekstensi memperluas kelas String dengan metode yang menampilkan instance string yang diikuti oleh deretan simbol tanda baca yang dikirim sebagai parameter.

' Declarations will typically be in a separate module.
Imports System.Runtime.CompilerServices

Module StringExtensions
    <Extension()>
    Public Sub PrintAndPunctuate(aString As String, 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

Perhatikan bahwa metode didefinisikan dengan dua parameter dan dipanggil hanya dengan satu. Parameter pertama, aString, dalam definisi metode terikat ke example, instans String yang memanggil metode . Output contohnya adalah sebagai berikut:

Hello?
Hello!!!!

Lihat juga