Memahami Namespace C#: Menghindari Konflik Nama
Sebuah namespace dirancang untuk memberikan cara untuk memisahkan satu himpunan nama dari yang lain. Nama kelas yang dideklarasikan dalam satu namespace tidak bertentangan dengan nama kelas yang sama yang dideklarasikan dalam namespace lain.
Mendefinisikan Namespace
Definisi namespace dimulai dengan kata kunci namespace diikuti oleh nama namespace sebagai berikut:
namespace namespace_name { // deklarasi kode } Untuk memanggil versi yang diaktifkan namespace dari fungsi atau variabel, tambahkan nama namespace di depan sebagai berikut:
namespace_name.item_name;
Program berikut menunjukkan penggunaan namespace:
Live Demo
using System; namespace first_space { class namespace_cl { public void func() { Console.WriteLine("Inside first_space"); } } } namespace second_space { class namespace_cl { public void func() { Console.WriteLine("Inside second_space"); } } } class TestClass { static void Main(string[] args) { first_space.namespace_cl fc = new first_space.namespace_cl(); second_space.namespace_cl sc = new second_space.namespace_cl(); fc.func(); sc.func(); Console.ReadKey(); } } Ketika kode di atas dikompilasi dan dieksekusi, hasilnya adalah:
Inside first_space Inside second_space
Kata Kunci using
Kata kunci using menyatakan bahwa program menggunakan nama dalam namespace yang diberikan. Contohnya, kita menggunakan namespace System dalam program kita. Kelas Console didefinisikan di sana. Kita hanya menulis:
Console.WriteLine ("Hello there"); Kita bisa telah menulis nama yang sepenuhnya memenuhi syarat sebagai berikut:
System.Console.WriteLine("Hello there"); Anda juga dapat menghindari penambahan namespace dengan direktif using namespace. Direktif ini memberi tahu compiler bahwa kode berikutnya menggunakan nama dalam namespace yang ditentukan. Namespace tersebut secara implisit untuk kode berikut:
Mari kita tulis ulang contoh sebelumnya, dengan direktif using:
Live Demo
using System; using first_space; using second_space; namespace first_space { class abc { public void func() { Console.WriteLine("Inside first_space"); } } } namespace second_space { class efg { public void func() { Console.WriteLine("Inside second_space"); } } } class TestClass { static void Main(string[] args) { abc fc = new abc(); efg sc = new efg(); fc.func(); sc.func(); Console.ReadKey(); } } Ketika kode di atas dikompilasi dan dieksekusi, hasilnya adalah:
Inside first_space Inside second_space
Namespace Bertingkat
Anda dapat mendefinisikan satu namespace di dalam namespace lain sebagai berikut:
namespace namespace_name1 { // deklarasi kode namespace namespace_name2 { // deklarasi kode } } Anda dapat mengakses anggota namespace bertingkat dengan menggunakan operator titik (.) sebagai berikut:
Live Demo
using System; using first_space; using first_space.second_space; namespace first_space { class abc { public void func() { Console.WriteLine("Inside first_space"); } } namespace second_space { class efg { public void func() { Console.WriteLine("Inside second_space"); } } } } class TestClass { static void Main(string[] args) { abc fc = new abc(); efg sc = new efg(); fc.func(); sc.func(); Console.ReadKey(); } } Ketika kode di atas dikompilasi dan dieksekusi, hasilnya adalah:
Inside first_space Inside second_space