Bagikan melalui


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

Lihat juga