Thông tin tài liệu:
Dạng bài tập về Micosoft.NET- P15: 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- P15Các bài tập Microsoft .NET 71 End Set Get Description = mdescription End GetEnd PropertyReadOnly và WriteOnly propertyBây giờ nếu Property là ReadOnly ta sẽ lấy phần Set ra và viết:Public ReadOnly Property Age() As Integer Get Age = 3 End GetEnd Propertyhay WriteOnly ta sẽ ấy phần Get ra và viết:Private _data As IntegerPublic WriteOnly Property Data() As Integer Set (ByVal Value As Integer) _data = Value End SetEnd PropertyDefault PropertiesDefault Property là property của Object mà program dùng khi ta chỉ chotên của Object và không nói rõ property nào. Thí dụ trong VB6 khi tacode:TextBox1 = The house of rising sunVB6 hiểu rằng ta muốn dùng Default Property text của Textbox1 nêncode ấy tương đương với:TextBox1.text = The house of rising sunTrong VB6 khi ta dùng keyword Set với tên của Object, thí dụ như: Dim myTextBox As TextboxCác bài tập Microsoft .NET 72 Set myTextBox = TextBox1program sẽ hiểu là ta muốn nói đến chính Object myTextBox . Nếukhông thì nó biết ta muốn nói đến Object Default Property mà làm biếngcode cho rõ ra.Trong VB.NET Default Property phải là một Property array. MộtProperty array là một property được Indexed (nói đến từng Item bằngcon số Index) giống như một array. Lý do chính của sự bắt buộc này là đểkhỏi lẫn lộn giữa hai trường hợp ta nói đến Default property của mộtObject hay chính Object ấy, vì trong VB.NET ta không còn dùng Setkeyword cho Object assignment nữa (ta chỉ còn dùng keyword Set trongProperty mà thôi).Bây giờ hễ muốn nói đến Default Property của Object thì phải dùngIndex. Thí dụ để nói đến chính Object, ta code:myValue = myObjectđể nói đến Default Property Item 3 của Object, ta code:myValue = myObject(3)Sự thay đổi từ VB6 này có nghĩa là một property array procedure phảinhận một parameter. Thí dụ:Private theData(100) As StringDefault Public Property Data(ByVal Index As Integer) As String Get Data = theData(Index) End Get Set(ByVal Value As String) theData(Index) = Value End SetEnd PropertyTừ nay ta không thể code:TextBox1 = Good morning!như trong VB6 được nữa, mà phải code:Các bài tập Microsoft .NET 73TextBox1.text = Good morning!Vì Property Text không còn là Default Property của TextBox.Overloading methodsMột trong những chức năng đa diện (Polymorphism) hùng mạnh nhất củaVB.NET là overload (quá tải, có rồi mà còn cho thêm) một method.Overloading có nghĩa là ta có thể dùng cùng một tên cho nhiều methods -miễn là chúng có danh sách các parameters khác nhau, hoặc là parameterdùng data type khác nhau (td: method này dùng Integer, method kia dùngString), hoặc là số parameters khác nhau (td: method này có 2 parameters,method kia có 3 parameters).Overloading không thể được thực hiện chỉ bằng cách thay đổi data typecủa Return value của Function. Phải có parameter list khác nhau mớiđược.Dưới đây là thí dụ ta dùng Overloading để code hai Functions tìm data,một cái cho String, một cái cho Integer:Public Function FindData(ByVal Name As String) As ArrayList find data and return resultEnd FunctionFriend Function FindData(ByVal Age As Integer) As ArrayList find data and return resultEnd FunctionĐể ý là ta có thể cho mỗi overloading Function một phạm vi hoạt động(Scope on implementation) khác nhau. Trong thí dụ trên ta dùng AccessModifier Public cho Function đầu và Friend cho Function sau.Object LifecycleObject Lifecycle (cuộc đời của Object) được dùng để nói đến khi nàoObject bắt đầu hiện hữu và khi nào nó không còn nữa. Sở dĩ ta cần biết rõcuộc đời của một Object bắt đầu và chấm dứt lúc nào là để tránh dùng nókhi nó không hiện hữu, tức là chưa ra đời hay đã khuất bóng rồi.Các bài tập Microsoft .NET 74New methodTrong VB6, khi một Object thành hình thì Sub Class_Initialize đượcexecuted. Tương đương như vậy, trong VB.NET ta có Sub New(), gọi làConstructor. VB.NET bảo đảm Sub New() sẽ được CLR gọi khi Objectđược instantiated và nó chạy trước bất cứ code nào trong Object.Nếu Sub Class_Initialize của một Class Object trong VB6 không nhậnparameter thì Sub New() trong VB.NET chẳng những có nhận parametersmà còn cho phép ta nhiều cách để gọi nó. Sự khác biệt trong Constructorscủa VB6 và VB.NET rất quan trọng.Tưởng tượng ta có một Khuôn làm bánh bông lan; khuôn là Class cònnhững bánh làm ra từ khuôn sẽ là các Objects bánh bông lan. Nếu tamuốn làm một cái bánh bông lan với một lớp sô-cô-la trên mặt thì côngtác sẽ gồm có hai bước: 1. Dùng khuôn (Class) nướng một cái Object bánh bông lan (dùng Sub Class_Initialize) 2. Đổ lên mặt bánh một lớp sô-cô-la (dùng class Public Sub ...