Blog của Lê Văn Luật

Đời người thì có hạn mà sự học thì vô hạn!

C#: Phân biệt giữa typeof, GetType và is

+ typeof trả về kiểu của một lớp

System.Type  typeof(TênLớp)

trong đó TênLớp là tên một lớp đã khai báo. TênLớp được xác định khi thiết kế (design time).

+ is so sánh kiểu của kết quả của một biểu thức có tương thích với một lớp hay không

BiểuThức  is   TênLớp

+ GetType trả về kiểu của một biến khi chạy (Runtime):

System.Type TênBiến.GetType()

Ví dụ: có khai báo hai lớp và 2 biến như sau

class Nguoi {}
class NhanVien : Nguoi {}
....
Nguoi ng;
NhanVien nv;

Khi đó:

ng.GetType() == typeof(Nguoi) // cho kết quả là true
nv.GetType() == typeof(NhanVien) // cho kết quả là true
nv.GetType() == typeof(Nguoi) // cho kết quả là flase
ng is typeof(Nguoi) // cho kết quả là true
nv is typeof (Nguoi) // cho kết quả là true
ng is typeof(NhanVien) // cho kết quả là false

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

Information

This entry was posted on 01/05/2013 by in Lập trình C# & WPF and tagged , , , .

Điều hướng

%d bloggers like this: