Giới thiệu
Có một số phương pháp có thể xác định loại đối tượng, mỗi phương pháp có những đặc điểm riêng. Trước khi sử dụng chúng, bạn nên biết cách sử dụng chúng. Tôi đã dành thời gian để tìm phương pháp cuối cùng (GetType) và sử dụng theo cách được mô tả trong bài viết này.
Tôi hy vọng thông tin này có ích cho bạn.
Trước khi chúng ta bắt đầu
Bài viết này sử dụng các chữ viết tắt sau:Việc sử dụng các chữ viết tắt có vẻ là một phương pháp lỗi thời trong thời đại của intellisense. Nhưng tôi là một người theo phong cách cũ và nó vẫn mang lại nhiều lợi thế cho tôi:
- Bạn có thể nhận ra ngay các khai báo, định nghĩa đối tượng, chương trình con, hàm, v.v. của riêng mình.
- Phạm vi của một biến được hiển thị ngay lập tức.
- Một số lỗi lầm tự nhiên bộc lộ ra.
- Bạn phải nghĩ ra ít tên hơn. Và tin tôi đi, nghĩ ra những cái tên hay, có ý nghĩa và rõ ràng không phải là một công việc dễ dàng chút nào.
Private Enum enmAction As Byte encNo = 0 encYes = 1 End Enum Private varText As String = "Test" Private Function mtdTextToCapitals( _ ByVal parText As String, _ ByVal parAction As enmAction) As String Dim mvrText As String = Trim(parText) If parAction = enmAction.encYes Then mvrText = mvrText.ToUpper End If Return mvrText End Function Private Sub Form1_Load( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles MyBase.Load Dim mvrText as String = mtdTextToCapitals(varText, enmAction.encYes) End Sub
Hãy bắt đầu
Trong bài viết này sẽ sử dụng haiUserControl
sau:Public Class usrX Inherits Label End Class Public Class usrY Inherits Label End Class
Và, ví dụ trong một biểu mẫu, có hai trường hợp được thực hiện:
Private varX as new usrX varX.Name = "NameX" Private varY as new usrY varY.Name = "NameY"
Tên
Name
xác định một thể hiện của đối tượng bằng tên của nó (chuỗi).Ví dụ:
If varX.Name = "NameX" Then 'Action here End If
Đặc trưng:
- Không tính đến yếu tố di truyền .
- Nhanh chóng, 10.000.000 lần kiểm tra chỉ mất khoảng 0,25 giây trên máy tính của tôi.
- Không kiểm tra kiểu, lỗi đánh máy trong tên đối tượng không được trình biên dịch phát hiện.
- Có sẵn trong Biểu mẫu và (Điều khiển) của người dùng.
LoạiTên
TypeName xác định một đối tượng bằng tên kiểu của nó (chuỗi).Ví dụ:
If TypeName(varX) = "usrX" Then 'Action here End If
Đặc trưng:
- Không tính đến yếu tố di truyền .
- Khá chậm, 10.000.000 lần kiểm tra chỉ mất khoảng 2 giây trên máy tính của tôi.
- Không kiểm tra kiểu, lỗi đánh máy trong tên đối tượng không được trình biên dịch phát hiện.
- Có sẵn trong Biểu mẫu, Điều khiển (Người dùng) và Lớp.
TypeOf
xác định một đối tượng bằng tên kiểu của nó.Ví dụ:
If TypeOf varX Is usrX Then 'Action here End If
Đặc trưng:
- Có tính đến yếu tố di truyền.
- Rất nhanh, 10.000.000 lần kiểm tra chỉ mất khoảng 0,04 giây trên máy tính của tôi.
- Kiểm tra kiểu, lỗi đánh máy trong tên đối tượng sẽ được trình biên dịch phát hiện.
- Có sẵn trong Biểu mẫu, Điều khiển (Người dùng) và Lớp.
Ví dụ:
Dim mvrObject As Object = varX If TypeOf mvrObject Is Label Then Debug.WriteLine("Label") End If If TypeOf mvrObject Is usrX Then Debug.WriteLine("usrX") End If If TypeOf mvrObject Is usrY Then Debug.WriteLine("usrY") End If
Kết quả là:
NhãnusrX
usrX
kế thừa Label, và do đó TypeOftrả về True cho usrXnhưng cũng cho Label
.Lấy Loại
GetType
xác định một đối tượng bằng tên kiểu của nó.Ví dụ:
If mvrObject.GetType Is GetType(usrX) Then 'Action here End If
Đặc trưng:
- Không tính đến yếu tố di truyền .
- Rất nhanh, 10.000.000 lần kiểm tra chỉ mất khoảng 0,045 giây trên máy tính của tôi.
- Kiểm tra kiểu, lỗi đánh máy trong tên đối tượng sẽ được trình biên dịch phát hiện.
- Có sẵn trong Biểu mẫu, Điều khiển (Người dùng) và Lớp.
Dim mvrObject As Object = varX If mvrObject.GetType Is GetType(Label) Then Debug.WriteLine("Label") End If If mvrObject.GetType Is GetType(usrX) Then Debug.WriteLine("usrX") End If If mvrObject.GetType Is GetType(usrY) Then Debug.WriteLine("usrY") End If
Mặc dù có sự kế thừa, kết quả chỉ là:
usrX
.Như vậy chúng ta đã biết sơ bộ về cách để xác định đối tượng và mồi dòng code trong này là một phương pháp riêng để mọi người dễ nắm bắt nhất nhé.
Chúc mọi người thành công với hướng dẫn trên.
Comments