Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda menggunakan pernyataan deklarasi normal untuk mendeklarasikan variabel objek. Untuk jenis data, Anda menentukan ( Object
yaitu, Tipe Data Objek) atau kelas yang lebih spesifik tempat objek akan dibuat.
Mendeklarasikan variabel sebagai Object
sama dengan mendeklarasikannya sebagai System.Object.
Ketika Anda mendeklarasikan variabel dengan kelas objek tertentu, variabel dapat mengakses semua metode dan properti yang diekspos oleh kelas tersebut dan kelas tempatnya mewarisi. Jika Anda mendeklarasikan variabel dengan Object, variabel hanya dapat mengakses anggota kelas Object, kecuali Anda mengatur 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 Object
jenis data. Ini membuat referensi umum ke semua jenis objek, dan kelas tertentu ditetapkan pada waktu proses. Ini disebut pengikatan terlambat. Pengikatan lambat memerlukan waktu eksekusi tambahan. Ini juga membatasi kode Anda ke metode dan properti kelas yang baru-baru ini Anda tetapkan untuk itu. 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 contoh deklarasi sebelumnya, jika variabel objA
hanya menggunakan objek kelas System.Windows.Forms.Label, Anda harus menentukan As System.Windows.Forms.Label
dalam deklarasinya.
Keuntungan Pengikatan Awal
Mendeklarasikan variabel objek sebagai kelas tertentu memberi Anda beberapa keuntungan:
Pemeriksaan tipe data otomatis
Akses terjamin ke semua anggota kelas tertentu
Dukungan Microsoft IntelliSense di Penyunting Kode
Peningkatan keterbacaan kode Anda
Lebih sedikit kesalahan dalam kode Anda
Kesalahan yang ditemukan pada waktu kompilasi bukan waktu eksekusi
Eksekusi kode yang lebih cepat
Akses ke Anggota Variabel Objek
Ketika Option Strict
diubah On
, variabel objek hanya dapat mengakses metode dan properti kelas tempat Anda mendeklarasikannya. Contoh berikut mengilustrasikan hal 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 mencakup properti Left
. Di sisi lain, q
dideklarasikan berjenis Label, sehingga dapat menggunakan semua metode dan properti dari 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 penetapan objek terhadap akses ke anggota kelas. Misalnya, pertimbangkan hierarki warisan yang mengarah ke System.Windows.Forms.Form kelas :
Misalkan aplikasi Anda mendefinisikan 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 semua kelas tempat specialForm
mewarisi.
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, itu tidak dapat menggunakan salah satu metode atau properti tambahan 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.