Modifier adalah kata kunci yang ditambahkan pada elemen pemrograman apa pun untuk memberikan penekanan khusus tentang bagaimana elemen tersebut akan berperilaku atau diakses dalam program.
Sebagai contoh, modifier akses seperti: Public, Private, Protected, Friend, Protected Friend, dan lain-lain menunjukkan tingkat akses suatu elemen pemrograman seperti variabel, konstanta, enumerasi, atau kelas.
Daftar Modifier yang Tersedia di VB.Net
| No. | Modifier | Deskripsi |
|---|---|---|
| 1 | Ansi | Menentukan bahwa Visual Basic harus mengonversi semua string ke nilai ANSI (American National Standards Institute) terlepas dari nama prosedur eksternal yang dideklarasikan. |
| 2 | Assembly | Menentukan bahwa atribut di awal file sumber berlaku untuk seluruh assembly. |
| 3 | Async | Menunjukkan bahwa metode atau ekspresi lambda yang dimodifikasi bersifat asynchronous (tidak sinkron). Pemanggil metode async dapat melanjutkan pekerjaannya tanpa harus menunggu metode tersebut selesai. |
| 4 | Auto | Digunakan dalam pernyataan Declare untuk mengatur cara Visual Basic mengelola string saat memanggil prosedur eksternal, dan juga mempengaruhi bagaimana pencarian nama prosedur dilakukan dalam file eksternal. |
| 5 | ByRef | Menentukan bahwa argumen dikirimkan sebagai referensi, sehingga prosedur yang dipanggil dapat mengubah nilainya. |
| 6 | ByVal | Menentukan bahwa argumen dikirimkan sebagai nilai, sehingga prosedur yang dipanggil tidak dapat mengubah nilai aslinya. |
| 7 | Default | Menetapkan properti sebagai properti default dalam kelas, struktur, atau antarmuka. |
| 8 | Friend | Elemen pemrograman yang dideklarasikan dengan Friend hanya dapat diakses dari dalam assembly yang sama. Ini adalah level akses default untuk modul, kelas, struktur, dan antarmuka. |
| 9 | In | Digunakan dalam antarmuka dan delegasi generik. |
| 10 | Iterator | Menentukan bahwa fungsi atau accessor Get adalah iterator, yaitu melakukan iterasi kustom terhadap koleksi. |
| 11 | Key | Digunakan untuk menentukan perilaku properti dalam tipe anonim. |
| 12 | Module | Menentukan bahwa atribut di awal file sumber berlaku untuk modul assembly saat ini (berbeda dengan pernyataan Module). |
| 13 | MustInherit | Menunjukkan bahwa kelas hanya bisa digunakan sebagai kelas dasar (tidak bisa langsung diinstansiasi). |
| 14 | MustOverride | Menunjukkan bahwa properti atau prosedur tidak diimplementasikan dalam kelas ini dan harus dioverride di kelas turunan. |
| 15 | Narrowing | Menunjukkan bahwa konversi tipe bisa kehilangan beberapa data, misalnya mengkonversi kelas ke tipe yang tidak bisa menampung semua nilainya. |
| 16 | NotInheritable | Menunjukkan bahwa kelas tidak bisa digunakan sebagai kelas dasar. |
| 17 | NotOverridable | Menunjukkan bahwa properti atau prosedur tidak bisa dioverride di kelas turunan. |
| 18 | Optional | Menunjukkan bahwa argumen prosedur bisa dihilangkan saat pemanggilan. |
| 19 | Out | Digunakan untuk parameter tipe generik yang bersifat covariant. |
| 20 | Overloads | Menunjukkan bahwa properti atau prosedur mendeklarasikan ulang satu atau lebih prosedur/properti dengan nama yang sama. |
| 21 | Overridable | Menunjukkan bahwa properti atau prosedur bisa dioverride oleh turunan. |
| 22 | Overrides | Menunjukkan bahwa properti atau prosedur mengoverride elemen identik dari kelas dasar. |
| 23 | ParamArray | Mengizinkan prosedur menerima sejumlah argumen yang tidak ditentukan (array parameter). |
| 24 | Partial | Menunjukkan bahwa deklarasi kelas atau struktur adalah definisi parsial (terpisah dalam beberapa file). |
| 25 | Private | Menunjukkan bahwa elemen pemrograman hanya bisa diakses dari dalam konteks deklarasinya. |
| 26 | Protected | Menunjukkan bahwa elemen hanya bisa diakses dari dalam kelasnya sendiri atau kelas turunan. |
| 27 | Public | Menunjukkan bahwa elemen tidak memiliki batasan akses (bisa diakses dari mana saja). |
| 28 | ReadOnly | Variabel atau properti hanya bisa dibaca, tidak bisa ditulis. |
| 29 | Shadows | Elemen yang dideklarasikan menyembunyikan elemen lain dengan nama yang sama dari kelas dasar. |
| 30 | Shared | Menunjukkan bahwa elemen milik seluruh kelas atau struktur, bukan pada instance tertentu. |
| 31 | Static | Variabel lokal tetap mempertahankan nilainya meskipun prosedur telah selesai dijalankan. |
| 32 | Unicode | Menentukan bahwa semua string harus dikonversi ke Unicode. |
| 33 | Widening | Menunjukkan bahwa konversi ke tipe lain akan selalu berhasil tanpa kehilangan data. |
| 34 | WithEvents | Menunjukkan bahwa variabel anggota menunjuk ke objek yang dapat memunculkan event. |
| 35 | WriteOnly | Menunjukkan bahwa properti hanya bisa ditulis (tidak bisa dibaca). |
Kita coba praktekkan di kelas ya bersama instruktur agar lebih nyaman to the point, okay?