PDA

View Full Version : cách làm namespeace đây !!!


con trai Tần Thuỷ Ho�
02-06-2004, 13:28
Bạn đã có từ tiếng Việt để "diễn nghĩa" cho namespace chưa? Bạn cứ nếm món namespace xem nó có vị gì rồi thử tìm xem có thuật ngữ Việt nào thích hợp để gọi namespace không nhé.
Các namespace tập hợp các lớp vào một hệ thống có thứ bậc (thường dựa vào chức năng của các lớp). Hệ thống thứ bậc như vậy không chỉ dùng trong VB.NET mà còn có hiệu lực trong toàn bộ CLR (Common Language Runtime - bộ runtime dùng chung cho mọi ngôn ngữ trên .NET). Ví dụ: namespace System.IO chứa các lớp, các cấu trúc và các giao diện dành để làm việc với các dòng dữ liệu và các tập tin nhập/xuất.
Một assembly là đơn vị triển khai chính cho các ứng dụng .NET. Assembly có thể là một tập tin thư viện liên kết động (DLL) hoặc là một tập tin thực thi (EXE).
Mỗi namespace là sự kết hợp một quy ước đặt tên với một assembly để tránh sự nhập nhằng khi tham chiếu đối tượng. Một namespace không những bao gồm các lớp mà còn bao gồm các namespace khác (tạm gọi là "namespace con"). Ví dụ: IO là "namespace con" của namespace System.
Namespace cung cấp phần định danh cho tên thành phần (component). Bằng một namespace, ta tập hợp các lớp có chức năng tương tự lại với nhau. Ví dụ: namespace System.Text chứa một lớp rất hữu ích là StringBuilder. Để tham chiếu đến lớp này, ta có thể xài namespace đầy đủ là System.Text.StringBuilder.
Bạn chú ý, cấu trúc namespace khác với cây phả hệ của các lớp tạo nên namespace. Ví dụ, RegularExpressions là "namespace con" của System.Text. RegularExpressions chứa nhiều lớp, nhưng các lớp ấy không thừa kế các lớp tạo nên "namespace cha" System.Text. Hình 1 cho bạn thấy các lớp trong namespace System.Text và các lớp trong "namespace con" System.Text.RegularExpressions. Các lớp trong hai namespace cha và con ấy đều thừa kế lớp Object, ngoài ra không có "dây mơ rễ má" gì với nhau. Như bạn thấy, các lớp trong cùng một namespace có thể có liên hệ "huyết thống".
Hình 1: Minh họa các đối tượng thuộc namespace


Các namespace được thi công trong các assembly của .NET. Namespace System được thi công trong một assembly có sẵn trong VS.NET mang tên System.DLL. Bằng việc tham chiếu đến assembly này, dự án của ta có thẩm quyền tham chiếu đến tất cả các "namespace con" của System.
Theo mặc định, thư viện Microsoft.VisualBasic.Compatibility.VB6 không phải thành phần của các dự án VB. Để có được quyền truy xuất các lớp trong namespace này, bạn phải thêm nó vào dự án thông qua hộp thoại Add Reference (bạn mở hộp thoại này bằng cách bấm-phải vào nút References trong cửa sổ Solution Explorer). Hộp thoại Add Reference cho phép ta lấy dùng các assembly .NET do Microsoft cung cấp, các thành phần COM và các assembly .NET "tự biên tự diễn" (custom .NET).
Món này có vị cay? Y như món... lẩu Thái, nào là assembly, rồi component, reference, custom,… Nghe cứ lùng bùng, nóng cả mặt mũi!