Bagikan melalui


Daftar Tipe (Visual Basic)

Menentukan parameter jenis untuk elemen pemrograman generik. Parameter jamak dipisahkan oleh koma. Berikut ini adalah sintaks untuk satu jenis parameter.

Sintaks

[genericmodifier] typename [ As constraintlist ]

Generator

Term Definisi
genericmodifier Opsional. Hanya dapat digunakan dalam antarmuka generik dan delegasi. Anda dapat mendeklarasikan kovarian jenis dengan menggunakan kata kunci Keluar atau kontravarian dengan menggunakan kata kunci Masuk. Lihat Kovarian dan Kontravarian.
typename Harus diisi. Nama parameter jenis. Ini adalah tempat penampung, untuk digantikan oleh jenis yang ditentukan yang disediakan oleh argumen jenis yang sesuai.
constraintlist Opsional. Daftar persyaratan yang membatasi jenis data yang dapat disediakan untuk typename. Jika Anda memiliki beberapa batasan, sertakan dalam kurung kurawal ({ }) dan pisahkan dengan koma. Anda harus menuliskan daftar batasan dengan kata kunci As. Anda hanya menggunakan As sekali, di awal daftar.

Keterangan

Setiap elemen pemrograman generik harus mengambil setidaknya satu parameter jenis. Parameter jenis adalah tempat penampung untuk jenis tertentu ( elemen yang dibangun) yang ditentukan kode klien saat membuat instans jenis generik. Anda dapat menentukan kelas, struktur, antarmuka, prosedur, atau delegasi generik.

Untuk informasi selengkapnya tentang kapan harus menentukan jenis generik, lihat Jenis Generik di Visual Basic. Untuk informasi selengkapnya tentang nama parameter jenis, lihat Nama Elemen yang Dinyatakan.

Aturan

  • Tanda Kurung. Jika Anda menyediakan daftar parameter jenis, Anda harus mengapitnya dalam tanda kurung, dan Anda harus memperkenalkan daftar dengan kata kunci Of. Anda hanya menggunakan Of sekali, di awal daftar.

  • Batasan. Daftar batasan pada parameter jenis dapat menyertakan item berikut dalam kombinasi apa pun:

    • Sejumlah antarmuka. Jenis yang disediakan harus mengimplementasikan setiap antarmuka dalam daftar ini.

    • Paling banyak satu kelas. Jenis yang disediakan harus diwarisi dari kelas tersebut.

    • Kata kunci New. Jenis yang disediakan harus mengekspos konstruktor tanpa parameter yang dapat diakses oleh jenis generik Anda. Ini berguna jika Anda membatasi parameter jenis oleh satu atau lebih antarmuka. Jenis yang mengimplementasikan antarmuka tidak selalu mengekspos konstruktor, dan tergantung pada tingkat akses konstruktor, kode dalam jenis generik mungkin tidak dapat mengaksesnya.

    • Baik kata kunci Class atau kata kunci Structure. Kata kunci Class membatasi parameter jenis generik untuk mengharuskan argumen jenis apa pun yang diteruskan ke dalamnya menjadi jenis referensi, misalnya string, array, atau delegasi, atau objek yang dibuat dari kelas. Kata kunci Structure membatasi parameter jenis generik untuk mengharuskan argumen jenis apa pun yang diteruskan ke dalamnya menjadi jenis nilai, misalnya struktur, enumerasi, atau jenis data dasar. Anda tidak dapat menyertakan Class dan Structure dalam constraintlist yang sama.

    Jenis yang disediakan harus memenuhi setiap persyaratan yang Anda sertakan dalam constraintlist.

    Batasan pada setiap parameter jenis tidak bergantung pada batasan pada parameter jenis lain.

Perilaku

  • Substitusi Waktu-Kompilasi. Saat Anda membuat jenis yang dibangun dari elemen pemrograman generik, Anda menyediakan jenis yang ditentukan untuk setiap parameter jenis. Kompiler Visual Basic menggantikan jenis yang disediakan untuk setiap kemunculan typename dalam elemen generik.

  • Tidak adanya Batasan. Jika Anda tidak menentukan batasan apa pun pada parameter jenis, kode Anda terbatas pada operasi dan anggota yang didukung oleh Jenis Data Objek untuk parameter jenis tersebut.

Contoh 1

Contoh berikut menunjukkan definisi kerangka kelas kamus generik, termasuk fungsi kerangka untuk menambahkan entri baru ke kamus.

Public Class dictionary(Of entryType, keyType As {IComparable, IFormattable, New})
    Public Sub add(ByVal et As entryType, ByVal kt As keyType)
        Dim dk As keyType
        If kt.CompareTo(dk) = 0 Then
        End If
    End Sub
End Class

Contoh 2

Karena dictionary umum, kode yang menggunakannya dapat membuat berbagai objek darinya, masing-masing memiliki fungsionalitas yang sama tetapi bertindak pada jenis data yang berbeda. Contoh berikut menunjukkan baris kode yang membuat objek dictionary dengan entri String dan kunci Integer.

Dim dictInt As New dictionary(Of String, Integer)

Contoh 3

Contoh berikut menunjukkan definisi kerangka yang setara yang dihasilkan oleh contoh sebelumnya.

Public Class dictionary
    Public Sub Add(ByVal et As String, ByVal kt As Integer)
        Dim dk As Integer
        If kt.CompareTo(dk) = 0 Then
        End If
    End Sub
End Class

Lihat juga