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
}Code language: JavaScript (javascript)

Để 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();
        }
     }
}Code language: JavaScript (javascript)

Ở 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();Code language: CSS (css)

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();
        }
     }
}Code language: JavaScript (javascript)

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

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");
                }
           }
       }
}Code language: JavaScript (javascript)

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();Code language: JavaScript (javascript)

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


Nhận bộ tài liệu kỹ năng dành cho lập trình viên (video hướng dẫn + slide) tại đây

Nhận tài liệu “Design Pattern For Beginner” tại đây