Thông tin tài liệu:
Không gian tên là một định nghĩa mới trong ngôn ngữ máy tính, nhưng chúng rất hữu dụng, và một số có thể chứng minh rằng sự tồn tại của chúng là cần thiết. Một trong những vấn đề lớn nhất của lập trình là quá tải tên (name overlapping).
Nội dung trích xuất từ tài liệu:
Lập trình C# - Phần 4: C# Nâng cao (THPT Chuyên Lê Hồng Phong)Câu lạc bộ Khoa học - THPT Chuyên Lê Hồng Phong TPHCM LHPSCLập trình C#Dịch từ cuốn sách Beginning C Sharp Game ProgrammingPhần 4: C# Nâng caoKhông gian tên (Namespace)Không gian tên là một định nghĩa mới trong ngôn ngữ máy tính, nhưng chúng rất hữu dụng, và một sốcó thể chứng minh rằng sự tồn tại của chúng là cần thiết.Một trong những vấn đề lớn nhất của lập trình là quá tải tên (name overlapping). Hãy nói bạn tạo mộtrừng các lớp cho chương trình của bạn, và sau đó bạn muốn nhập thư viện của một người nào khác đểgiúp cho chương trình của bạn. Điều gì sẽ xảy ra nếu một số lớp của người đó có cùng tên với các lớpcủa bạn, nhưng làm các việc khác nhau? Thật không may, điều đó xảy ra rất nhiều.Lấy ví dụ, cả Direct3D và DirectSound đều có các lớp tên là Device, và bạn rõ ràng không thể cóhai lớp có cùng tên. Không gian tên làm nó trở nên đơn giản, vì vậy bạn có thể ám chỉ các thiết bịkhác nhau như Direct3D.Device và DirectSound.Device.Bạn có thể nghĩ không gian tên giống như một thành phố. Nếu bạn chỉ nói với một người nào đó rằngbạn sống ở đường Nguyễn Văn Cừ (chẳng hạn), thì có đến hàng ngàn đường Nguyễn Văn Cừ trongđất nước. Nếu muốn xác định chính xác bạn sống ở đâu, bạn cần phải nói với người đó cả thành phốbạn sống nữa. Tạo ra một không gian tên giống như việc cụ thể thành phố và đường của bạn mà trongđóbạn có thể đặt một số lớp (đường xá) bên trong một không gian tên xác định (thành phố), do đóchương trình của bạn sẽ được phân chia gọn gàng hơn.Bạn có thể cho hầu như mọi thứ vào một không gian tên, bao gồm lớp, cấu trúc, trích xuất và cả mộtkhông gian tên khác! Hình 4.1 cho thấy một ví dụ về không gian tên. Không gian tên System Không gian tên Chapter04 Không gian tên System.Data Lớp Chapter04.Spaceship Không gian tên System.Collections Lớp Chapter04.Spacesation Lớp System.ConsoleHình 4. 1 Đây là hai không gian tên, System và Chapter04. Trong các không gian tên là các khônggian tên con và các lớp.Lập trình C# - Phần 4: C# Nâng cao Trang 1Câu lạc bộ Khoa học - THPT Chuyên Lê Hồng Phong TPHCM LHPSCKhông gian tên rất tuyệt bởi vì bạn có thể phân cấp chúng – bạn có thể cho nhiều không gian tên vàomột không gian tên đang tồn tại. Ví dụ, .NET framework bắt đầu với không gian tên System, với cáckhông gian tên khác trong nó, như là System.Data hay System.Collections.Không gian tên phần cấp cho phép bạn tạo cả những hệ thống phân cấp lớn hơn, giống như Việt Namtồn tại ở Đông Nam Á, Thành phố Hồ Chí Minh tồn tại trong Việt Nam, và đường Nguyễn Văn Cừtồn tại ở Thành phố Hồ Chí Minh.Tạo Không gian tênĐây là một số mã mô tả việt sử dụng một không gian tên:namespace Chapter04{ class Spaceship { // Mã ở đây }; class Spacestation { // Mã ở đây };}Và sau đó, ở bên ngoài không gian tên, bạn sẽ truy cập các lớp đó như thế này:Chapter04.Spaceship s = new Chapter04.Spaceship();Một tính năng khác của không gian tên là chúng có thể được phân chia thành nhiều phần. Ví dụ, bạncó thể có mã như thế này trong một tập tin:namespace Chapter04{ class Spaceship // blah blah}và sau đó cho một trạm không gian vào một tập tin khác:namespace Chapter04{ class Spacestation // blah blah}Trình dịch C# sẽ tự động ghép các không gian tên cho bạn, vì vậy bạn không phải cho tất cả vào mộttập tin lớn.Sử dụng Không gian tênKhi bạn đang ở trong một không gian tên, bạn có thể sử dụng tất cả những gì trong không gian tên đómà không cần phải định danh nó. Nếu bạn muốn truy cập lớp Spaceship bên trong lớpSpacestation trong ví dụ trước tôi cho bạn thấy, thì bạn chỉ cần đánh vào Spaceship và C# sẽcho rằng bạn đang nói đến Chapter04.Spaceship bởi vì bạn đang ở trong cùng không gian tên.Tuy nhiên, nếu bạn đang ở ngoài không gian tên, bạn phải định danh không gian tên bằng cách gõChapter04. phía trước.Lập trình C# - Phần 4: C# Nâng cao Trang 2Câu lạc bộ Khoa học - THPT Chuyên Lê Hồng Phong TPHCM LHPSCĐương nhiên, gõ Chapter04.Spaceship nhiều lần có thể gây phiền toái một lúc, đặc biệt là bạnbiết rằng bạn chỉ sử dụng Spaceship trong Chapter04 chứ không phải nơi nào khác. May mắnthay, bạn được phép nói cho trình dịch C# rằng bạn muốn sử dụng tất cả những gì trong không giantên đó, bằng cách ...