|
HỒ LÔ BIẾN |
|
VB.NET hông? Các
namespace và từ chốt Imports
Chương Can Chíp
|
|
Nếu mở nút References
trong dự án XinChao
(mời bạn xem kỳ trước), bạn sẽ thấy một tham chiếu
đến System.Drawing. Khi
bổ sung một tham chiếu đến một thành phần, ta có thể
sử dụng các chức năng của nó trong ứng dụng. Ví dụ: |
|
Dim MauSacXeGanMay As
System.Drawing.Color |
|
Ở đây, cấu trúc Color
thuộc namespace System.Drawing.
Namespace (tạm... dịch ẩu là "nem-xì-pay-xì"!) được
sử dụng để tổ chức các lớp, các cấu trúc,... thành
một hệ thống cấp bậc có ý nghĩa, giúp giảm bớt xung
đột trong việc đặt tên. |
|
Có thể bỏ qua phần tên đầy
đủ của một namespace bằng cách cho biết trước
namespace nào sẽ được xài trong mã lệnh của mình
thông qua lệnh Imports. Hai lệnh đầu tiên được tự
tạo trong tập tin AssemblyInfo.VB của ví dụ
XinChao
là: |
|
Imports System.Reflection
Imports System.Runtime.InteropServices |
|
Bạn chú ý, các lệnh
Imports phải được đặt ở phần đầu của một tập tin mã
lệnh và trước tất cả các dòng lệnh khác. Trong đoạn
mã trên, namespace System.Reflection được nhập khẩu
(import). Kể từ đây ta có thể xài thuộc tính
AssemblyTitle đơn giản như sau: |
|
<Assembly: AssemblyTitle(“
“)> |
|
thay vì phải viết đầy đủ như sau: |
|
<Assembly:
System.Reflection.AssemblyTitle(“ “)> |
|
Việc nhập khẩu các
namespace giúp giảm số lượng mã lệnh cần gõ nhưng
bạn phải cẩn thận, nếu nhập khẩu hai namespace có
chứa các kiểu cùng tên và khai báo một biến thuộc
một trong các kiểu này, nhưng không xài cách khai
báo đầy đủ namespace, bộ biên dịch sẽ không biết
đường đâu mà lần! Ví dụ, nếu ta nhập khẩu hai
namespace System.Drawing và
eChipColor nào đấy đều
chứa một cấu trúc Color, thì cách tham chiếu đến đối
tượng Color như sau: |
|
Dim
objColor As Color |
|
sẽ gây lỗi:
“The name ‘Color’ is ambiguous, imported from
namespaces or types ‘eChipColor, System.Drawing’.” |
|
Bạn có thể dùng
Object
Browser để xem các namespace được phép xài trong một
ứng dụng bằng mục chọn View\Other Windows trên trình
đơn. Object Browser được chia thành hai ô. Ô bên
trái liệt kê các namespace được phép xài trong một
ứng dụng. Có thể mở các nút namespace để khám phá
các lớp, các cấu trúc và các loại khác được chứa bên
trong mỗi namespace. Nếu chọn một lớp hoặc một loại
khác từ ô bên trái, các thành viên của chúng sẽ được
liệt kê trong ô bên phải. |
|
Các namespace cũng có thể được lồng bên trong những namespace khác. Việc
lồng nhau này giúp tổ chức các lớp thành một cấu
trúc lô-gích hơn, giảm bớt nhầm lẫn. Ví dụ: trong
namespace System.Drawing, namespace
Drawing là một
con của namespace System. |
|
Các tham chiếu được bổ
sung vào ví dụ XinChao liên quan trực tiếp đến các
namespace sau: System, System.Data, System.Drawing,
System.Windows.Forms, System.XML. |
|
Bạn để ý, trên Object Browser, sát bên nút
References là các tập tin tạo nên dự án.
Trong ví dụ của ta có hai tập tin: Form1.VB và
AssemblyInfo.VB. |
|
Bạn đã biết namespace là gì. Theo bạn, tụi mình nên
dịch nó thành tiếng Việt ra sao? |
|
|