Namespace trong C#

Bài viết được sự cho phép của BBT Tạp chí Lập trình

Một namespace trong C# được thiết kế để phân nhóm toàn bộ các kiểu dữ liệu theo một cấu trúc phân cấp. Nhờ có namespace kiểu dữ liệu được quản lí tốt hơn và tránh được hiện tượng xung đột tên. Các tên được khai báo trong một namespace không xung đột với cùng tên đó nhưng được khai báo ở một namespace khác.

Định nghĩa một namespace trong C#

Một định nghĩa namespace trong C# bắt đầu bằng từ khóa namespace theo sau là tên của namespace

Ví dụ 1:

namespace tên_namespace
{
      // Khai báo code
}

Để sử dụng các namespace sử dụng toán tử dot (.) sau tên namespace

Ví dụ 2:

namespace Code
{
    class Program
    {
        public static void Print()
        {
            System.Console.WriteLine("CodeGym");
        }
    }
}

namespace Gym
{
     class Program
     {
        public static void Main(string[] args)
        {
              Code.Program.Print();
        }
     }
}

Ở hàm Main gọi đến phương thức Print của lớp Program nằm trong namespace Code. Kết quả hiển thị lên màn hình là chuỗi kí tự CodeGym.

Từ khóa Using trong C#

Sử dụng từ khóa using để khai báo sử dụng các lớp trong namespace.

Với ví dụ 2 để sử dụng phương thức WriteLine thuộc lớp Console trong namespace System cần phải khai báo đầy đủ là:

System.Console.WriteLine();

Sửa lại mã ở ví dụ 2 sử dụng using:

using System;

using Code;

namespace Code
{
    class Class1
    {
        public static void Print()
       {
            Console.WriteLine("CodeGym");
       }
    }
}

namespace Gym
{
     class Program
     {
        public static void Main(string[] args)
        {
             Class1.Print();
        }
     }
}

Kết quả hiển thị lên màn hình là chuỗi kí tự CodeGym.

  .NET – Strong Named Assembly là gì?
  Tìm hiểu chi tiết về Spacing trong CSS

Lồng namespace 

Trong C# có thể định nghĩa một namespace bên trong các namespace khác, Ví dụ:

namespace NamespaceA
{
     class Namespacel
     {
          public void InNamespace()
          {
                 Console.Write("Code");
          }
     }
     namespace namespaceB
     {
          class Namespace2
          {
                public void InNamespace()
                {
                      Console.Write("Gym");
                }
           }
       }
}

Sử dụng toán tử dot (.) để truy cập các biến thành viên của các namespace được lồng vào nhau:

NamespaceA.Namespacel ns1 = new NamespaceA.Namespacel();
 NamespaceA.namespaceB.Namespace2 ns2 = new NamespaceA.namespaceB.Namespace2();
 ns1.InNamespace();
 ns2.InNamespace();

Kết quả hiển thị lên màn hình là chuỗi kí tự  CodeGym.

Bài viết gốc được đăng tải tại Tạp chí Lập trình

Có thể bạn quan tâm:

Xem thêm tuyển dụng lập trình C# hấp dẫn tại TopDev