Namespaces trong C#

0
368

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

Khai báo một namespace

Một namespace bắt đầu với từ khóa namespace theo sau là tên do người dùng đặt như sau:

namespace ten_namespace
{
   // khai bao code
}

Để kích hoạt namespace của hàm hoặc biến, thêm chúng vào sau tên namespace như sau:

namespace_name.item_name;

Chương trình sau minh họa sử dụng các namespace:

using System;
namespace first_space //TAO NAMESPACE
{
   class namespace_cl
   {
      public void func()
      {
         Console.WriteLine("Namespace thư nhat");
      }
   }
}

namespace second_space
{
   class namespace_cl
   {
      public void func()
      {
         Console.WriteLine("Namespace thu 2");
      }
   }
}

class TestClass
{
   static void Main(string[] args)
   {
      first_space.namespace_cl fc = new first_space.namespace_cl(); //TAO PHAN TU THUOC NAMESPACE 1
      second_space.namespace_cl sc = new second_space.namespace_cl(); //TAO PHAN TU THUOC NAMESPACE 2
      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 các kết quả như sau:

Namespace thu nhat
Namespace thu hai

Việc sử dụng từ khóa

Việc sử dụng từ khóa cho biết rằng chương trình đang thực thi trong một không gian được giới hạn bởi tên namespace. Ví dụ, chúng ta đang sử dụng namespace System trong chương trình. Lớp Console được định nghĩa ở đó. Chúng tôi chỉ cần viết:

Console.WriteLine ("Hello there");

Chúng ta có thể viết tên đầy đủ là:

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

Bạn cũng có thể tránh được thêm vào trước các namespace từ chỉ thị using. Chỉ thị này cho trình biên dịch rằng mã tiếp theo là làm việc trong namespace này. Ví dụ sau sẽ minh họa điều này:

using System;
using first_space;
using second_space;

namespace first_space
{
   class abc
   {
      public void func()
      {
         Console.WriteLine("Namespace thu nhat");
      }
   }
}

namespace second_space
{
   class efg
   {
      public void func()
      {
         Console.WriteLine("Namespace thu hai");
      }
   }
}   

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 các kết quả như sau:

Namesapce thu nhat
Namespace thu hai

Namespace lồng nhau:

Bạn có thể đặt một namespace bên trong namespace khác như sau:

namespace namespace_name1
{
   // khai bao code
   namespace namespace_name2
   {
      // khai bao code
   }
}

Bạn có thể truy cập các namespace con bằng cách sử dụng các 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("Namespace thu nhat");
      }
   }
   namespace second_space
   {
      class efg
      {
         public void func()
         {
            Console.WriteLine("Namespace thu hai");
         }
      }
   }   
}
 
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 các kết quả như sau:

Namespace thu nhat
Namesapce thu hai

Chúc bạn thành công !

This site uses Akismet to reduce spam. Learn how your comment data is processed.