Ruang nama C# (Ruang nama)
Ruang nama direka bentuk untuk menyediakan cara untuk memastikan sekumpulan nama berasingan daripada nama lain. Nama kelas yang diisytiharkan dalam satu ruang nama tidak bercanggah dengan nama kelas yang sama yang diisytiharkan dalam ruang nama lain.
Tentukan ruang nama
Takrif ruang nama bermula dengan kata kunci ruang nama, diikuti dengan nama ruang nama, seperti berikut:
namespace namespace_name { // 代码声明 }
Untuk memanggil fungsi atau pembolehubah yang menyokong versi ruang nama, nama ruang nama akan diletakkan di hadapan, seperti berikut:
namespace_name.item_name;
Atur cara berikut menunjukkan penggunaan ruang nama:
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(); } }
Apabila kod di atas disusun dan dilaksanakan, ia menghasilkan keputusan berikut:
Inside first_space Inside second_space
menggunakan Kata kunci
menggunakan kata kunci menunjukkan prosedur Nama dalam ruang nama yang diberikan digunakan. Sebagai contoh, kami menggunakan ruang nama Sistem dalam program kami, di mana Konsol kelas ditakrifkan. Kami hanya boleh menulis:
Console.WriteLine ("Hello there");
Kami boleh menulis nama yang layak sepenuhnya seperti berikut:
System.Console.WriteLine("Hello there");
Anda juga boleh menggunakan arahan menggunakan ruang nama supaya anda tidak mempunyai untuk Menambah nama ruang nama. Arahan ini memberitahu pengkompil bahawa kod berikutnya menggunakan nama daripada ruang nama yang ditentukan. Kod berikut menangguhkan penggunaan ruang nama.
Mari kita tulis semula contoh di atas menggunakan spesifikasi penggunaan:
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(); } }
Apabila kod di atas disusun dan dilaksanakan, ia akan menghasilkan keputusan berikut:
Inside first_space Inside second_space
Ruang penamaan bersarang
Ruang nama boleh bersarang, iaitu anda boleh menentukan satu ruang nama di dalam ruang nama lain, seperti ini:
namespace namespace_name1 { // 代码声明 namespace namespace_name2 { // 代码声明 } }
Anda boleh mengakses sarang menggunakan operator titik (.) Tetapkan ahli ruang nama seperti berikut:
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(); } }
Apabila kod di atas disusun dan dilaksanakan, ia menghasilkan keputusan berikut:
Inside first_space Inside second_space