Pernyataan Namespace
Mendeklarasikan nama namespace dan menyebabkan kode sumber yang mengikuti deklarasi dikompilasi dalam namespace tersebut.
Sintaks
Namespace [Global.] { name | name.name }
[ componenttypes ]
End Namespace
Generator
Opsional Global. Memungkinkan Anda menentukan namespace dari namespace akar proyek Anda. Lihat Namespace di Visual Basic.
name
Diperlukan. Nama unik yang mengidentifikasi namespace. Harus menjadi pengenal Visual Basic yang valid. Untuk informasi selengkapnya, lihat Nama Elemen yang Dideklarasikan.
componenttypes
Opsional. Elemen yang membentuk namespace. Ini termasuk, tetapi tidak terbatas pada, enumerasi, struktur, antarmuka, kelas, modul, delegasi, dan namespace lainnya.
End Namespace
Mengakhiri blok Namespace
.
Keterangan
Namespace digunakan sebagai sistem organisasi. Namespace menyediakan cara untuk mengklasifikasikan dan menyajikan elemen pemrograman yang terekspos ke program dan aplikasi lain. Perhatikan bahwa namespace bukan jenis dalam pengertian kelas atau struktur—Anda tidak dapat mendeklarasikan elemen pemrograman untuk memiliki jenis data namespace.
Semua elemen pemrograman dideklarasikan setelah pernyataan Namespace
milik namespace tersebut. Visual Basic terus mengkompilasi elemen ke dalam namespace terakhir yang dinyatakan sampai menemukan pernyataan End Namespace
atau pernyataan Namespace
lain.
Jika namespace sudah ditentukan, bahkan di luar proyek Anda, Anda dapat menambahkan elemen pemrograman ke dalamnya. Untuk melakukan ini, Anda menggunakan pernyataan Namespace
untuk mengarahkan Visual Basic untuk mengompilasi elemen ke dalam namespace tersebut.
Anda hanya dapat menggunakan pernyataan Namespace
di tingkat file atau namespace. Ini berarti konteks deklarasi untuk namespace harus berupa file sumber atau namespace lain, dan tidak boleh berupa kelas, struktur, modul, antarmuka, atau prosedur. Untuk informasi selengkapnya, lihat Konteks Deklarasi dan Tingkat Akses Default.
Anda dapat mendeklarasikan satu namespace dalam namespace lain. Tidak ada batasan ketat untuk tingkat berlapis yang dapat Anda deklarasikan, tetapi ingat bahwa ketika kode lain mengakses elemen yang dinyatakan di namespace terdalam, ia harus menggunakan string kualifikasi yang berisi semua nama namespace dalam hierarki bersarang.
Tingkat Akses
Namespace diperlakukan seolah-olah memiliki tingkat akses Public
. Namespace dapat diakses dari kode di mana saja dalam proyek yang sama, dari proyek lain yang mereferensikan proyek tersebut, dan dari assembly apa pun yang dibangun dari proyek.
Elemen pemrograman dideklarasikan pada tingkat namespace, yang berarti dalam namespace tetapi tidak di dalam elemen lain, dapat memiliki akses Public
atau Friend
. Jika tidak ditentukan, tingkat akses elemen tersebut menggunakan Friend
secara default. Elemen yang dapat Anda deklarasikan di tingkat namespace mencakup kelas, struktur, modul, antarmuka, enumerasi, dan delegasi. Untuk informasi selengkapnya, lihat Konteks Deklarasi dan Tingkat Akses Default.
Namespace Akar
Semua nama namespace dalam proyek Anda didasarkan pada namespace akar. Visual Studio menetapkan nama proyek Anda sebagai namespace akar default untuk semua kode dalam proyek Anda. Misalnya, jika proyek Anda diberi nama Payroll
, elemen pemrogramannya milik namespace Payroll
. Jika Anda mendeklarasikan Namespace funding
, nama lengkap namespace tersebut adalah Payroll.funding
.
Jika Anda ingin menentukan namespace yang sudah ada dalam pernyataan Namespace
, seperti dalam contoh kelas daftar generik, Anda dapat mengatur namespace akar Anda ke nilai null. Untuk melakukan ini, klik Properti Proyek dari menu Proyek lalu kosongkan entri Namespace akar sehingga kotak kosong. Jika Anda tidak melakukan ini dalam contoh kelas daftar generik, pengompilasi Visual Basic akan mengambil System.Collections.Generic
sebagai namespace baru dalam proyek Payroll
, dengan nama lengkap Payroll.System.Collections.Generic
.
Atau, Anda dapat menggunakan kata kunci Global
untuk merujuk ke elemen namespace yang ditentukan di luar proyek Anda. Melakukannya memungkinkan Anda mempertahankan nama proyek Anda sebagai namespace akar. Ini mengurangi kemungkinan menggabungkan elemen pemrograman Anda secara tidak sengaja bersama dengan namespace yang ada. Untuk informasi selengkapnya, lihat bagian "Kata Kunci Global pada Nama yang Sepenuhnya Memenuhi Syarat" di Namespace di Visual Basic.
Kata kunci Global
juga dapat digunakan dalam pernyataan Namespace. Ini memungkinkan Anda menentukan namespace dari namespace akar proyek Anda. Untuk informasi selengkapnya, lihat bagian "Kata Kunci Global di Pernyataan Namespace" di Namespace di Visual Basic.
Pemecahan Masalah. Namespace akar dapat menyebabkan perangkaian nama namespace yang tidak terduga. Jika Anda membuat referensi ke namespace yang ditentukan di luar proyek Anda, pengompilasi Visual Basic dapat membangunnya sebagai namespace berlapis di namespace akar. Dalam kasus seperti itu, pengompilasi tidak mengenali jenis apa pun yang telah ditentukan di namespace eksternal. Untuk menghindari hal ini, atur namespace akar Anda ke nilai null seperti yang dijelaskan di "Namespace Akar", atau gunakan kata kunci Global
untuk mengakses elemen namespace eksternal.
Atribut dan Pengubah
Anda tidak dapat menerapkan atribut ke namespace. Atribut memberikan kontribusi berupa informasi ke metadata assembly, yang tidak bermakna untuk pengklasifikasi sumber seperti namespace.
Anda tidak dapat menerapkan pengubah akses atau prosedur apa pun, atau pengubah lainnya, ke namespace. Karena bukan jenis, pengubah ini tidak bermakna.
Contoh 1
Contoh berikut mendeklarasikan dua namespace, satu ditumpuk di yang lain.
Namespace n1
Namespace n2
Class a
' Insert class definition.
End Class
End Namespace
End Namespace
Contoh 2
Contoh berikut mendeklarasikan beberapa namespace berlapis pada satu baris, dan setara dengan contoh sebelumnya.
Namespace n1.n2
Class a
' Insert class definition.
End Class
End Namespace
Contoh 3
Contoh berikut mengakses kelas yang ditentukan dalam contoh sebelumnya.
Dim instance As New n1.n2.a
Contoh 4
Contoh berikut mendefinisikan kerangka kelas daftar generik baru dan menambahkannya ke namespace System.Collections.Generic.
Namespace System.Collections.Generic
Class specialSortedList(Of T)
Inherits List(Of T)
' Insert code to define the special generic list class.
End Class
End Namespace