Bagikan melalui


Pernyataan Namespace

Mendeklarasikan nama namespace layanan dan menyebabkan kode sumber yang mengikuti deklarasi dikompilasi dalam namespace tersebut.

Sintaksis

Namespace [Global.] { name | name.name }
    [ componenttypes ]
End Namespace

Bagian

Opsional Global. Memungkinkan Anda menentukan namespace di luar namespace layanan akar proyek Anda. Lihat Namespace di Visual Basic.

name Diperlukan. Nama unik yang mengidentifikasi namespace. Harus merupakan pengidentifikasi Visual Basic yang valid. Untuk informasi selengkapnya, lihat Nama Elemen yang Dinyatakan.

componenttypes Opsional. Elemen yang membentuk namespace layanan. Ini termasuk, tetapi tidak terbatas pada, enumerasi, struktur, antarmuka, kelas, modul, delegasi, dan namespace lainnya.

End Namespace Mengakhiri blok Namespace .

Komentar

Namespace digunakan sebagai sistem organisasi. Mereka menyediakan cara untuk mengklasifikasikan dan menyajikan elemen pemrograman yang terekspos ke program dan aplikasi lain. Perhatikan bahwa namespace bukan tipe dalam arti kelas atau struktur—Anda tidak dapat mendeklarasikan elemen pemrograman untuk memiliki tipe data namespace layanan.

Semua elemen pemrograman dideklarasikan setelah Namespace pernyataan milik namespace layanan tersebut. Visual Basic terus mengkompilasi elemen ke dalam namespace layanan terakhir yang dinyatakan sampai menemukan End Namespace pernyataan atau pernyataan lain Namespace .

Jika namespace sudah ditentukan, bahkan di luar proyek, Anda dapat menambahkan elemen pemrograman ke dalamnya. Untuk melakukan ini, Anda menggunakan Namespace pernyataan untuk mengarahkan Visual Basic untuk mengkompilasi elemen ke dalam namespace tersebut.

Anda hanya dapat menggunakan Namespace pernyataan di tingkat file atau namespace. Ini berarti konteks deklarasi untuk namespace harus berupa file sumber atau namespace layanan lain, dan tidak boleh menjadi kelas, struktur, modul, antarmuka, atau prosedur. Untuk informasi selengkapnya, lihat Konteks Deklarasi dan Tingkat Akses Bawaan.

Anda dapat mendeklarasikan satu namespace dalam namespace layanan lainnya. Tidak ada batas ketat untuk tingkat berlapis yang dapat Anda deklarasikan, tetapi ingat bahwa ketika kode lain mengakses elemen yang dideklarasikan di namespace layanan terdalam, ia harus menggunakan string kualifikasi yang berisi semua nama namespace dalam hierarki berlapis.

Tingkat Akses

Namespace diperlakukan seolah-olah mereka memiliki Public tingkat akses. Namespace dapat diakses dari kode di mana saja dalam proyek yang sama, dari proyek lain yang mereferensikan proyek, dan dari rakitan apa pun yang dibangun dari proyek.

Elemen pemrograman dideklarasikan pada tingkat namespace, yang berarti dalam namespace tetapi tidak di dalam elemen lain, dapat memiliki Public atau Friend mengakses. Jika tidak ditentukan, tingkat akses elemen tersebut menggunakan Friend secara default. Elemen yang dapat Anda deklarasikan di tingkat namespace meliputi kelas, struktur, modul, antarmuka, enumerasi, dan delegasi. Untuk informasi selengkapnya, lihat Konteks Deklarasi dan Tingkat Akses Bawaan.

Namespace Layanan Akar

Semua nama namespace dalam proyek Anda didasarkan pada namespace layanan akar. Visual Studio menetapkan nama proyek Anda sebagai ruang nama 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 layanan tersebut adalah Payroll.funding.

Jika Anda ingin menentukan namespace yang ada dalam Namespace pernyataan, seperti dalam contoh kelas daftar generik, Anda dapat mengatur namespace layanan akar Anda ke nilai null. Untuk melakukan ini, klik Properti Proyek dari menu Proyek lalu kosongkan entri namespace root sehingga kotak kosong. Jika Anda tidak melakukan ini dalam contoh kelas daftar generik, pengkompilasi Visual Basic akan mengambil System.Collections.Generic sebagai namespace baru dalam proyek Payroll, dengan nama Payroll.System.Collections.Genericlengkap .

Atau, Anda dapat menggunakan Global kata kunci untuk merujuk ke elemen namespace yang ditentukan di luar proyek Anda. Melakukannya memungkinkan Anda mempertahankan nama proyek Anda sebagai namespace layanan akar. Ini mengurangi kemungkinan menggabungkan elemen pemrograman Anda secara tidak sengaja bersama dengan namespace yang ada. Untuk informasi selengkapnya, lihat bagian "Kata Kunci Global di Nama yang Sepenuhnya Memenuhi Syarat" di Namespace di Visual Basic.

Kata Global kunci juga dapat digunakan dalam pernyataan Namespace. Ini memungkinkan Anda menentukan namespace di luar namespace akar proyek Anda. Untuk informasi selengkapnya, lihat bagian "Kata Kunci Global di Pernyataan Namespace" di Namespace di Visual Basic.

Troubleshooting. Namespace layanan akar dapat menyebabkan perangkaian nama namespace tidak terduga. Jika Anda membuat referensi ke namespace yang ditentukan di luar proyek Anda, pengkompilasi Visual Basic dapat membangunnya sebagai namespace berlapis di namespace layanan akar. Dalam kasus seperti itu, pengkompilasi tidak mengenali jenis apa pun yang telah ditentukan di namespace eksternal. Untuk menghindari hal ini, atur namespace layanan akar Anda ke nilai null seperti yang dijelaskan di "Namespace Layanan Akar", atau gunakan Global kata kunci untuk mengakses elemen namespace eksternal.

Atribut dan Pengubah

Anda tidak dapat menerapkan atribut ke namespace. Atribut berkontribusi 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 layanan. 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 System.Collections.Generic namespace.

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