2009-07-24 32 views
11

Tôi có câu hỏi về cách xác định loại thuộc tính không thể bỏ qua của đối tượng.C# xác định thuộc tính Nullable Loại DateTime khi sử dụng sự phản chiếu

ObjectA với thuộc tính Ngày giờ? CreateDate;

khi tôi lặp lại thông qua các thuộc tính của nó như mã sau, làm cách nào để kiểm tra xem thuộc tính có phải là loại Ngày giờ không có khả năng không?

nhờ

foreach (PropertyInfo pi in ObjectA.GetType().GetProperties()) 
     { 
      //do the compare here 
     } 

Trả lời

31
pi.PropertyType == typeof(DateTime?) 
+0

cảm ơn bạn ~ .... :) – Eatdoku

+0

một câu hỏi ngươi ... làm thế nào để làm switch dựa trên loại? tôi có phải sử dụng tên đầy đủ không? hoặc nên sử dụng câu lệnh "Nếu" thay thế? Chuỗi tên đầy đủ cho loại Ngày giờ có thể bị lỗi? cảm ơn bạn – Eatdoku

+1

Tôi khuyên bạn nên sử dụng 'if' và tránh' FullName'. Nếu bạn muốn xem 'FullName' cho' DateTime? ', Thì chỉ cần in ra' typeof (DateTime?). FullName' - nhưng nó sẽ dài, sẽ làm cho mã của bạn ít dễ đọc hơn, dễ vỡ (nếu bạn thỉnh thoảng xóa Một đối tượng '' được so sánh với tham chiếu - nghĩa là có nhiều nhất một đối tượng 'Loại' cho bất kỳ đối tượng nào, vì vậy nếu hai tham chiếu bằng nhau, thì đây là cùng loại; và so sánh như vậy là nhanh chóng) –

2
pi.PropertyType == typeof(Nullable<DateTime>); 
0

Hãy thử:

property.PropertyType.Equals(typeof(DateTime?)) 
Các vấn đề liên quan