Bagikan melalui


Jenis Nilai dan Jenis Referensi

Ada dua jenis jenis di Visual Basic: jenis referensi dan jenis nilai. Variabel jenis referensi menyimpan referensi ke data mereka (objek), sementara variabel jenis nilai secara langsung berisi data mereka. Dengan jenis referensi, dua variabel dapat mereferensikan objek yang sama; oleh karena itu, operasi pada satu variabel dapat memengaruhi objek yang dirujuk oleh variabel lain. Dengan jenis nilai, setiap variabel memiliki salinan datanya sendiri, dan tidak dimungkinkan untuk operasi pada satu variabel untuk memengaruhi variabel lainnya (kecuali dalam kasus pengubah ByRef pada parameter).

Jenis Nilai

Jenis data adalah tipe nilai jika menyimpan data pada alokasi memorinya sendiri. Jenis nilai meliputi yang berikut ini:

  • Semua jenis data numerik

  • Boolean, Char, dan Date

  • Semua struktur, bahkan jika anggota mereka adalah tipe referensi

  • Enumerasi, karena jenis yang mendasarnya selalu SByte, Short, Integer, Long, Byte, UShort, UInteger, atau ULong

Setiap struktur adalah jenis nilai, meskipun berisi anggota jenis referensi. Untuk alasan ini, jenis nilai seperti Char dan Integer diimplementasikan oleh struktur .NET Framework.

Anda dapat mendeklarasikan jenis nilai dengan menggunakan kata kunci cadangan, misalnya, Decimal. Anda juga dapat menggunakan New kata kunci untuk menginisialisasi jenis nilai. Ini sangat berguna jika jenis memiliki konstruktor yang memerlukan parameter. Contohnya adalah Decimal(Int32, Int32, Int32, Boolean, Byte) konstruktor, yang membuat nilai baru Decimal dari bagian yang diberikan.

Jenis Referensi

Jenis referensi menyimpan referensi ke datanya. Jenis referensi meliputi yang berikut ini:

  • String

  • Semua array, bahkan jika elemennya adalah jenis nilai

  • Jenis kelas, seperti Form

  • Perwakilan

Kelas adalah jenis referensi. Perhatikan bahwa setiap array adalah jenis referensi, meskipun anggotanya adalah jenis nilai.

Karena setiap jenis referensi mewakili kelas .NET Framework yang mendasar, Anda harus menggunakan kata kunci Operator Baru saat menginisialisasinya. Pernyataan berikut menginisialisasi array.

Dim totals() As Single = New Single(8) {}  

Elemen yang bukan tipe

Elemen pemrograman berikut tidak memenuhi syarat sebagai jenis, karena Anda tidak dapat menentukan salah satunya sebagai jenis data untuk elemen yang dideklarasikan:

  • Namespace

  • Modul

  • Peristiwa

  • Properti dan prosedur

  • Variabel, konstanta, dan bidang

Bekerja dengan Tipe Data Objek

Anda dapat menetapkan jenis referensi atau jenis nilai ke variabel jenis Object data. Variabel Object selalu menyimpan referensi ke data, tidak pernah data itu sendiri. Namun, jika Anda menetapkan tipe nilai ke variabel Object, itu berfungsi seolah-olah menyimpan datanya sendiri. Untuk informasi selengkapnya, lihat Tipe Data Objek.

Anda dapat mengetahui apakah Object variable bertindak sebagai tipe referensi atau tipe nilai dengan meneruskannya ke IsReference metode dari Information kelas namespace Microsoft.VisualBasic. Information.IsReference mengembalikan True jika konten Object variabel mewakili jenis referensi.

Lihat juga