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.
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:
- Hướng dẫn lấy Date và Time trong C++
- Tổng hợp vector trong C++
- Modern C++ binary RPC framework gọn nhẹ, không cần code generation
Xem thêm tuyển dụng lập trình C# hấp dẫn tại TopDev