Deklarasi Variabel Objek (Visual Basic)
Anda menggunakan pernyataan deklarasi normal untuk mendeklarasikan variabel objek. Untuk jenis data, Anda menentukan Object
(yaitu, Jenis Data Objek) atau kelas yang lebih spesifik dari mana objek akan dibuat.
Mendeklarasikan variabel sebagai Object
sama dengan mendeklarasikannya sebagai System.Object.
Saat Anda mendeklarasikan variabel dengan kelas objek tertentu, variabel dapat mengakses semua metode dan properti yang diekspos oleh kelas tersebut dan kelas asal yang diwarisi. Jika Anda mendeklarasikan variabel dengan Object, variabel hanya dapat mengakses anggota kelas Object, kecuali Anda mengubah Option Strict Off
untuk mengizinkan pengikatan terlambat.
Sintaks Deklarasi
Gunakan sintaks berikut untuk mendeklarasikan variabel objek:
Dim variablename As [New] { objectclass | Object }
Anda juga dapat menentukan Publik, Dilindungi, Teman, Protected Friend
, Privat, Bersama, atau Statis dalam deklarasi. Contoh deklarasi berikut valid:
Private objA As Object
Static objB As System.Windows.Forms.Label
Dim objC As System.OperatingSystem
Pengikatan Terlambat dan Pengikatan Awal
Terkadang kelas tertentu tidak diketahui sampai kode Anda berjalan. Dalam hal ini, Anda harus mendeklarasikan variabel objek dengan jenis data Object
. Ini membuat referensi umum ke setiap jenis objek, dan kelas tertentu ditetapkan pada run time. Ini disebut pengikatan terlambat. Pengikatan terlambat memerlukan waktu eksekusi tambahan. Ini juga membatasi kode Anda ke metode dan properti kelas yang baru-baru ini Anda tetapkan untuknya. Ini dapat menyebabkan kesalahan run-time jika kode Anda mencoba mengakses anggota kelas yang berbeda.
Ketika Anda mengetahui kelas tertentu pada waktu kompilasi, Anda harus mendeklarasikan variabel objek menjadi kelas tersebut. Ini disebut pengikatan awal. Pengikatan awal meningkatkan performa dan menjamin akses kode Anda ke semua metode dan properti kelas tertentu. Dalam deklarasi contoh sebelumnya, jika variabel objA
hanya menggunakan objek kelas System.Windows.Forms.Label, Anda harus menentukan As System.Windows.Forms.Label
dalam deklarasinya.
Keuntungan Pengikatan Data Awal
Mendeklarasikan variabel objek sebagai kelas tertentu memberi Anda beberapa keuntungan:
Pemeriksaan jenis otomatis
Akses terjamin ke semua anggota kelas tertentu
Dukungan Microsoft IntelliSense di Editor Kode
Peningkatan keterbacaan kode Anda
Lebih sedikit kesalahan dalam kode Anda
Kesalahan yang tertangkap pada waktu kompilasi daripada run time
Eksekusi kode yang lebih cepat
Akses ke Anggota Variabel Objek
Ketika Option Strict
diubah menjadi On
, variabel objek hanya dapat mengakses metode dan properti kelas yang Anda gunakan untuk mendeklarasikannya. Contoh berikut mengilustrasikan langkah-langkah ini:
' Option statements must precede all other source file lines.
Option Strict On
' Imports statement must precede all declarations in the source file.
Imports System.Windows.Forms
Public Sub accessMembers()
Dim p As Object
Dim q As System.Windows.Forms.Label
p = New System.Windows.Forms.Label
q = New System.Windows.Forms.Label
Dim j, k As Integer
' The following statement generates a compiler ERROR.
j = p.Left
' The following statement retrieves the left edge of the label in pixels.
k = q.Left
End Sub
Dalam contoh ini, p
hanya dapat menggunakan anggota kelas Object itu sendiri, yang tidak menyertakan properti Left
. Di sisi lain, q
telah dideklarasikan berjenis Label, sehingga dapat menggunakan semua metode dan properti kelas Label di namespace System.Windows.Forms.
Fleksibilitas Variabel Objek
Saat bekerja dengan objek dalam hierarki pewarisan, Anda memiliki pilihan kelas mana yang akan digunakan untuk mendeklarasikan variabel objek Anda. Dalam membuat pilihan ini, Anda harus menyeimbangkan fleksibilitas penugasan objek terhadap akses ke anggota kelas. Misalnya, pertimbangkan hierarki pewarisan yang mengarah ke kelas System.Windows.Forms.Form:
Misalkan aplikasi Anda menentukan kelas formulir yang disebut specialForm
, yang mewarisi dari kelas Form. Anda dapat mendeklarasikan variabel objek yang merujuk secara khusus ke specialForm
, seperti yang ditunjukkan contoh berikut.
Public Class specialForm
Inherits System.Windows.Forms.Form
' Insert code defining methods and properties of specialForm.
End Class
Dim nextForm As New specialForm
Deklarasi dalam contoh sebelumnya membatasi variabel nextForm
ke objek kelas specialForm
, tetapi juga membuat semua metode dan properti specialForm
tersedia untuk nextForm
, serta semua anggota dari semua kelas asal yang diwarisi specialForm
.
Anda dapat membuat variabel objek lebih umum dengan mendeklarasikannya berjenis Form, seperti yang ditunjukkan contoh berikut.
Dim anyForm As System.Windows.Forms.Form
Deklarasi dalam contoh sebelumnya memungkinkan Anda menetapkan formulir apa pun dalam aplikasi Anda ke anyForm
. Namun, meskipun anyForm
dapat mengakses semua anggota kelas Form, tapi tidak dapat menggunakan metode atau properti tambahan apapun yang ditentukan untuk formulir tertentu seperti specialForm
.
Semua anggota kelas dasar tersedia untuk kelas turunan, tetapi anggota tambahan dari kelas turunan tidak tersedia untuk kelas dasar.
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk