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

5 293 0
Dạng bài tập về Micosoft.NET- P20 ppt

Đang tải... (xem toàn văn)

Thông tin tài liệu

Các bài tập Microsoft .NET 96 Dim Result As Single result = Math.Add(12.5, 36.8) Để ý thay vì dùng một object variable ta dùng thẳng tên của class Math để truy cập method Add. Với một method bình thường thì làm như thế sẽ bị syntax error, nhưng trong trường hợp này thì không sao. Ta cũng có thể overload shared methods, tức là có thể code nhiều shared methods với cùng một tên nhưng có những parameter lists khác nhau. Phạm vi hoạt động bình thường (Default Scope) của shared methods là Public. Tuy nhiên ta có thể giới hạn việc truy cập chúng bằng cách dùng những Access Modifiers như Friend, Protected hay Private. Thật ra khi overloading một shared method ta có thể dùng những scopes khác nhau cho mỗi shared method. Có một thí dụ về shared method từ .NET system class libraries. Để mở một text file theo mode input, điển hình ta dùng shared method trong File class như sau: Dim inFile As StreamReader = File.OpenText("words.txt") Dim strIn As String strIn = inFile.ReadLine() Ở đây không có object File nào được tạo ra. Method OpenText là một shared Function, nó mở input text file words.txt và cho ta một object loại StreamReader tên inFile để ta dùng sau đó. Shared Variables Đôi khi ta muốn tất cả objects của cùng một class đều dùng chung một variable. Ta có thể thực hiện việc ấy với shared variables. Một shared variable được khai báo với keyword shared giống như shared method: Public Class MyCounter Private Shared mintCount As Integer End Class Các bài tập Microsoft .NET 97 Ta có thể cho shared variable một scope Public hay Private tùy ý, nhưng By Default, scope của shared variables là Private, khác với shared methods thì By Default là Public. Điểm quan trọng của shared variables là chúng được dùng chung giữa mọi instances (objects) của cùng một class. Dưới đây là một thí dụ trong đó ta giữ cái counter có trị số tăng thêm 1 mỗi lần có một instance mới của class MyCounter. Bất cứ lúc nào ta cũng có thể biết có bao nhiêu objects đã được tạo ra bằng cách đọc property Count: Public Class MyCounter Private Shared mintCount As Integer Public Sub New() mintCount += 1 End Sub Public ReadOnly Property Count() As Integer Get Return mintCount End Get End Property End Class Như thế, nếu ta chạy client code dưới đây nó sẽ hiển thị kết quả là 3: Protected Sub Button1_Click( ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim obj As MyCounter obj = New MyCounter() obj = New MyCounter() obj = New MyCounter() MsgBox(obj.Count, MsgBoxStyle.Information, "Counter") Các bài tập Microsoft .NET 98 End Sub Nếu ta chạy code thêm hai lần nữa, ta sẽ có 6 và 9. Hể ta còn chạy chương trình thì cái counter còn làm việc. Khi ta chấm dứt chương trình thì cái counter sẽ biến mất. Global values Một cách dùng rất thông dụng khác của shared variable là xem nó như một loại Global variable. Khi dùng scope Public ta sẽ có một dạng tương đương với VB6 Global variable trong một BAS Module. Thí dụ như: Public Class GlobalData Public Shared TotalCost As Single End Class Sau đó ta có thể dùng variable này khắp nơi trong client code: GlobalData.TotalCost += 45.60 Events Raising Event để xử lý trong một Project khác VB.NET không hổ trợ Events từ đời cha đến đời con theo đúng nguyên tắc thừa kế. Nếu một BaseClass định nghĩa một Public Event thì ta chỉ có thể raise event ấy trong code của BaseClass thôi chớ không thể raise event ấy trong SubClass nào của BaseClass ấy. Khác với methods, ta không thể overload một Event, tức là không thể dùng một tên cho hai Events có parameter list khác nhau. Ta có thể tạo một Class Library Project với một Class trong đó có raise một Event rồi tạo một project khác trong đó có code để đón nhận và xử lý Event ấy. Để thử việc này bạn hãy tạo một Class Library Project mới với tên ClassLibrary1 về viết những dòng code định nghĩa Class Class1 với Event TheEvent và Sub LàmViệc để raise Event như sau: Public Class Class1 Public Event TheEvent() Các bài tập Microsoft .NET 99 Public Sub LàmViệc() RaiseEvent TheEvent() End Sub End Class Kế đó bạn dùng Menu command File | Add Project | New Project để thêm một project mới với tên EventClass. Để có thể dùng Class1, bạn cần phải reference nó với Menu command Project | Add Reference , chọn Tab Projects và click Browse để chọn ClassLibrary1.DLL từ subfolder ClassLibrary1\bin của solution như trong hình dưới đây: Một khi đã referenced ClassLibrary1 với Class1 trong ấy, bây giờ bạn có thể doubleclick lên Form1 để code như sau: Private WithEvents obj As ClassLibrary1.Class1 Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load obj = New ClassLibrary1.Class1() End Sub Các bài tập Microsoft .NET 100 Nhớ là ta phải declare variable obj thuộc loại ClassLibrary1.Class1 với WithEvents. Đặt một Button tên BtnLàmViệc và doubleclick lên nó để code như sau: Private Sub BtnLàmViệc_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnLàmViệc.Click obj.LàmViệc() End Sub Để xử lý Event của obj bạn chọn tên từ combobox phía trên bên trái, rồi chọn TheEvent từ combobox bên phải như trong hình dưới đây: Ở đây ta handle Event bằng cách hiển thị một message đơn giản: Đang xử lý một Event từ Class1. Bây giờ bạn có thể chạy program. Khi bạn click Button BtnLàmViệc program sẽ hiển thị message để chứng minh rằng từ một Application ta có thể handle event trong Class của một Project khác. . tên ClassLibrary1 về viết những dòng code định nghĩa Class Class1 với Event TheEvent và Sub LàmViệc để raise Event như sau: Public Class Class1 Public Event TheEvent() Các bài tập Microsoft .NET. như shared method: Public Class MyCounter Private Shared mintCount As Integer End Class Các bài tập Microsoft .NET 97 Ta có thể cho shared variable một scope Public hay Private tùy ý, nhưng By. MyCounter() obj = New MyCounter() MsgBox(obj.Count, MsgBoxStyle.Information, "Counter") Các bài tập Microsoft .NET 98 End Sub Nếu ta chạy code thêm hai lần nữa, ta sẽ có 6 và 9. Hể ta còn chạy chương

Ngày đăng: 08/07/2014, 08:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan