Tải bản đầy đủ (.pdf) (5 trang)

Dạng bài tập về Micosoft.NET- P21 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (184.88 KB, 5 trang )

Các bài tập Microsoft .NET 101
Ghi chú
Nếu sau khi Unzip source file và load project vào, bạn dùng IDE Menu
command Build | Rebuild Solution để compile lại hết các modules
nhưng gặp error về references thì hãy làm như sau:
• Trong Solution Explorer click các tree nodes
references để tìm các references có dấu chấm thang
trong tam giác vàng và remove chúng.
• Dùng Menu command Project | Add Reference để
chọn *.dll lại từ một \bin subfolder.
• Rebuild Solution.
Nếu bạn dùng chữ Việt Unicode trong program thì nhớ set up Advanced
Save Option với Menu command File như trong hình dưới đây:
Các bài tập Microsoft .NET 102
Khi Dialog hiện ra, bạn chọn Unicode (UTF-8) cho Encoding:
Nếu bạn không thấy có menuItem Advanced Save Option trong Menu
File thì cứ dùng menuItem Save As rồi click lên combo box Save phía
dưới, bên phải của Save File As Dialog rồi chọn Save with Encoding
như trong hình dưới đây:
Các bài tập Microsoft .NET 103
Nếu bạn quên set up Advanced Save Option như trên, chữ Việt sẽ bị lưu
trử dưới dạng ANSI nên một số sẽ mất dấu chữ Việt và thay vào đó bằng
những dấu ?.
Shared Events
Events có thể được declared là Shared. Shared methods chỉ có thể raise
shared events, chúng không thể raise non-shared events. Thí dụ như:
Public Class NguồnEvent
Shared Event EventDùngChoSharedMethods()
Public Shared Sub DùngChung()
RaiseEvent EventDùngChoSharedMethods()
End Sub


End Class
Một shared event có thể được raised bởi cả shared methods lẫn non-
shared methods:
Public Class NguồnEvent
Public Event TheEvent()
Các bài tập Microsoft .NET 104
Shared Event EventDùngChoSharedMethods()
Public Shared Sub DùngChung()
RaiseEvent EventDùngChoSharedMethods()
End Sub
Public Sub LàmViệc()
RaiseEvent TheEvent()
RaiseEvent EventDùngChoSharedMethods()
End Sub
End Class
Nếu bạn tìm cách raise một non-shared event từ một shared method thì sẽ
bị syntax error.
Early Binding hay Late Binding (Hiệu lực Sớm hay Trễ)
Early Binding có nghĩa là program biết rõ ngay từ đầu loại Object (thuộc
Class nào) sẽ được dùng trong hoàn cảnh nào. Nó cho phép IntelliSense
hiển thị cho ta thấy những class members nào ta có thể dùng và compiler
kiểm xem những methods ta dùng có hiện hữu không. Early Binding code
được compiled ra IL rất hiệu năng vì compiler biết rõ ràng data types của
các parameters.
Ngược lại Late Binding có nghĩa là ta làm việc cách linh động với một
Object lúc run-time, tức là program không biết trước Object ấy thuộc loại
nào. Late Binding cho ta sự uyển chuyển chỉ làm sao Object cung cấp
đúng method cần thiết là đủ. Do đó, ta không hưởng được sự sang trọng
IntelliSense cung cấp và compiler không thể kiểm soát loại Object trước
dùm cho ta được. Mặc dầu Late Binding code chạy chậm hơn nhưng nó

cho ta sự tự do giống như khi làm việc ngoài đời, để đến giờ chót mới xác
nhận.
By Default, mọi objects trong VB.NET đều là Late Bound. Visual
Studio.NET IDE với Option Strict Off by default áp đặt luật đó. Nếu
muốn áp đặt Early Binding ta cần phải nhét câu Option Strict On ở đầu
một source file.
Các bài tập Microsoft .NET 105
Dùng Object Type
Ta có Late Binding khi compiler không thể xác định loại Object ta đang
gọi. Ta có thể thực hiện điều này bằng cách dùng Object Type để tuyên
bố một cách mơ hồ rằng ta sẽ dùng một loại Object nào đó, vì một
variable với Object type có thể hold-reference-to bất cứ một Object nào.
Do đó, những dòng code sau đây có thể được dùng cho bất cứ Object nào
mà Class của nó có implement Sub CôngTácTôi và không dùng
parameter nào cả:
Option Strict Off
Module LateBind
Public Sub LàmViệc( ByVal obj As Object)
obj.CôngTácTôi()
End Sub
End Module
Nếu obj passed vào Sub LàmViệc không có một Sub CôngTácTôi
chẳng dùng parameter nào hết thì program sẽ bị error lúc run-time. Do đó,
ta nên luôn luôn dùng một Try Structure để bắt cái error đó. Thí dụ như:
Option Strict Off
Module LateBind
Public Sub LàmViệc( ByVal obj As Object)
Try
obj.CôngTácTôi()
Catch e As Exception

' Code để xử lý trường hợp Object không thích hợp
Console.WriteLine("Invalid Object passed to LàmViệc")
End Try
End Sub
End Module
Late Binding và Reflection

×