Bagikan melalui


Jenis Nilai dan Jenis Referensi

Ada dua jenis tipe dalam Visual Basic: jenis referensi dan jenis nilai. Variabel jenis referensi menyimpan referensi ke datanya (objek), sementara variabel jenis nilai secara langsung berisi datanya. 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 jenis nilai jika menyimpan data dalam alokasi memorinya sendiri. Tipe nilai meliputi yang berikut:

  • Semua tipe data numerik

  • Boolean, Char, dan Date

  • Semua struktur, bahkan jika anggotanya adalah tipe referensi

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

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

Anda bisa mendeklarasikan jenis nilai dengan menggunakan kata kunci yang dipesan, misalnya, Decimal. Anda juga bisa menggunakan kata kunci New untuk menginisialisasi jenis nilai. Ini sangat berguna jika tipe memiliki konstruktor yang mengambil parameter. Contohnya adalah Decimal(Int32, Int32, Int32, Boolean, Byte) konstruktor, yang membangun nilai baru Decimal dari bagian yang disediakan.

Jenis Referensi

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

  • String

  • Semua array, bahkan jika elemennya adalah tipe nilai

  • Jenis kelas, seperti Form

  • Delegasikan

Kelas adalah jenis referensi. Perhatikan bahwa setiap array adalah jenis referensi, bahkan jika anggotanya adalah tipe 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 bisa menentukan salah satu dari mereka sebagai tipe data untuk elemen yang dideklarasikan:

  • Namaspace

  • Modul

  • Acara

  • Properti dan prosedur

  • Variabel, konstanta, dan jenis

Bekerja dengan Tipe Data Objek

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

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

Lihat juga