C # - Không gian tên

A namespaceđược thiết kế để cung cấp một cách để giữ một bộ tên riêng biệt với một bộ tên khác. Tên lớp được khai báo trong một không gian tên không xung đột với các tên lớp tương tự được khai báo trong vùng tên khác.

Xác định không gian tên

Định nghĩa không gian tên bắt đầu bằng từ khóa namespace theo sau là tên không gian tên như sau:

namespace namespace_name {
   // code declarations
}

Để gọi phiên bản hỗ trợ không gian tên của hàm hoặc biến, hãy thêm vào trước tên không gian tên như sau:

namespace_name.item_name;

Chương trình sau minh họa việc sử dụng không gian tên:

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();
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

Inside first_space
Inside second_space

Việc sử dụng Từ khoá

Các usingtừ khóa nói rằng chương trình đang sử dụng tên trong không gian tên đã cho. Ví dụ: chúng tôi đang sử dụngSystemkhông gian tên trong các chương trình của chúng tôi. Bảng điều khiển lớp được định nghĩa ở đó. Chúng tôi chỉ viết -

Console.WriteLine ("Hello there");

Chúng tôi có thể đã viết tên đầy đủ đủ điều kiện là -

System.Console.WriteLine("Hello there");

Bạn cũng có thể tránh thêm các không gian tên với usingchỉ thị không gian tên. Chỉ thị này cho trình biên dịch biết rằng mã tiếp theo đang sử dụng tên trong không gian tên được chỉ định. Do đó, không gian tên được ngụ ý cho đoạn mã sau:

Hãy để chúng tôi viết lại ví dụ trước của chúng tôi, bằng cách sử dụng chỉ thị -

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();
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

Inside first_space
Inside second_space

Không gian tên lồng nhau

Bạn có thể xác định một không gian tên bên trong một không gian tên khác như sau:

namespace namespace_name1 {
   
   // code declarations
   namespace namespace_name2 {
      // code declarations
   }
}

Bạn có thể truy cập các thành viên của không gian tên lồng nhau bằng cách sử dụng toán tử dấu chấm (.) Như sau:

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();
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

Inside first_space
Inside second_space