Danh mục

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

Số trang: 5      Loại file: pdf      Dung lượng: 135.61 KB      Lượt xem: 18      Lượt tải: 0    
10.10.2023

Hỗ trợ phí lưu trữ khi tải xuống: miễn phí Tải xuống file đầy đủ (5 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Dạng bài tập về Micosoft.NET- P16: Sau khi biết qua về .NET, câu hỏi bạn sẽ đặt ra là bạn có nên học lập trìnhtrên .NET hay không. Nói chung, về lập trình có nhiều tôn giáo nhưVC++/Java, VB6, Delphi ..v.v.. Bạn có thể chọn giữa C# và VB.NET.Đối với VB6 programmers, học lập trình VB.NET sẽ mất một thời gian,nhưng không khó. Nên nhớ rằng .NET không phải chỉ cho ta các ngônngữ lập trình, mà cả một hệ thống triển khai phần mềm chú trọng vàomục tiêu hơn là cách thức....
Nội dung trích xuất từ tài liệu:
Dạng bài tập về Micosoft.NET- P16Các bài tập Microsoft .NET 76Như thế ta khỏi bận tâm với Select Case LoaiTrung khi chỉ dùng mộtSub New duy nhất với 1 parameter.Trong VisualStudio.NET, khi ta dùng tên của một overloaded method,IntelliSense sẽ hiển thị để hướng dẫn ta đánh vào parameter list khácnhau tùy theo method ta chọn.TerminationTrong VB6 một Object sẽ bị huỷ diệt khi cái reference (chỗ dùng đếnObject) cuối cùng bị lấy đi. Tức là khi không có code nào khác dùngObject nữa thì Object sẽ bị tự động huỷ diệt. System giữ một counter đểđếm số clients đang dùng Object. Cách này hay ở chỗ khi counter trởthành 0 thì Object bị huỷ diệt ngay. Ta nói nó có deterministicfinalization, nghĩa là ta biết rõ ràng khi nào Object biến mất.Tuy nhiên, nếu ta có hai Object dùng lẫn nhau (gọi là circularreferences), thì ngay cả đến lúc chúng không còn hoạt động nữa, chúngvẫn hiện hữu mãi trong bộ nhớ vì cái Reference counter của cả haiObjects không bao giờ trở thành 0. Nếu trường hợp này xảy ra thường lầnlần system không còn memory nữa, ta gọi đó là memory leak (bị rỉ bộnhớ) ..NET dùng phương pháp khác để quản lý chuyện này. Cứ mỗi chốc, mộtprogram sẽ chạy để kiểm xem có Object nào không còn reference nữa đểhuỷ diệt. Ta gọi đó là Garbage Collection (nhặt rác). Ngay cả trườnghợp hai Objects có circular references nhưng nếu không có code nào khácreference một trong hai Objects thì chúng cũng sẽ được huỷ diệt. Có điều,công tác nhặt rác chạy in the background (phía sau hậu trường) với ưutiên thấp, khi CPU rảnh rang, nên ta không biết chắc một Object sẽ bị hủydiệt đến bao giờ mới thật sự biến mất. Ta nói nó có nondeterministicfinalization.Ta có thể ép CLR nhặt rác lập tức bằng code: System.GC.Collect()Tuy nhiên, ta chỉ làm việc ấy khi kẹt quá thôi. Tốt hơn, ta duyệt lại designcủa mình để cho phép các Objects hết xài có thể ngồi chơi trong bộ nhớchờ đến lúc được hủy diệt.Các bài tập Microsoft .NET 77Dùng Dispose MethodNếu ta có một Object dùng nhiều tài nguyên (resources) như bộ nhớ,database connection, file handle,.v.v. và ta cần phải thả các tài nguyên rangay sau khi Object không còn hoạt động nữa, ta cần implement mộtInterface tên IDisposable với Implements keyword như sau:Public Class TheClassImplements IDisposableBạn phải viết code cho Sub Dispose giống như sau:Private Sub Dispose() Implements IDisposable.Dispose Viết clean up code ở đây để thả các tài nguyên raEnd SubSau đó bạn vẫn phải viết code cho Client để nó gọi Dispose Method trongIDisposable interface. Bạn cần phải dùng CType để cast Object Class khigọi Dispose.Dim objObject As New TheClass()CType (objObject, IDisposable).Dispose()Để lấy đi Reference đến một Object (gọi là Dereference Object) bạn cóthể dùng: myObject = NothingĐể ý là ta không có dùng keyword Set như trong VB6. Nhớ là sau khistatement trên được executed thì myObject không biến mất ngay nhưngnó đợi Garbage Collector đến giải quyết.Thừa kếThừa kế (Inheritance) là khả năng của một Class đạt được interface(giao diện) và behaviours (tánh tình) của một Class có sẵn. Cái quá trìnhđể làm nên việc ấy được gọi là Subclassing. Khi ta tạo ra một Class mớithừa kế cả interface lẫn behaviours từ một Class có sẵn là chúng ta đã tạora một subclass của Class nguyên thủy. Người ta nói đó là một mối liênhệ is-a (là một), ý nói Class mới là một loại Class nguyên thủy.Ta phân biệt mối liên hệ is-a với mối liên hệ has-a (có một). Trong mốiCác bài tập Microsoft .NET 78liên hệ has-a, Object chủ có thể làm chủ một hay nhiều Objects tớ, nhưngObject tớ là một loại có thể hoàn toàn khác với Object chủ.Để biểu diễn đặc tính Inheritance ta hãy xét trường hợp một công ty cungcấp Sản phẩm và Dịch vụ. Ta có thể code một Class cho Sản phẩm(ProductLine) và một Class cho Dịch vụ (ServiceLine) , riêng rẽ nhau.Nhưng vì thấy chúng có nhiều điểm tương đồng nên ta sẽ code một Classgọi là Món hàng (LineItem), rồi inherit từ LineItem ra ProductLine vàServiceLine.LineItem có các properties ID, Item, Price (giá) và Quantity (số lượng).Nó cũng có một Public Function để cho Amount (số tiền).Public Class LineItem Private mintID As Integer Private mstrItem As String Private msngPrice As Single Private mintQuantity As Integer Public Property ID() As Integer Get Return mintID End Get Set (ByVal Value As Integer) mintID = Value End Set End Property Public Property Item() As String Get Return mstrItem End Get Set (ByVal Value As String)Các bài tập Microsoft .NET 79 mstrItem = Value End Set End Property Public Property Price() As Single Get Return msngPrice End Get Set (ByVal Va ...

Tài liệu được xem nhiều: