2011-06-21 40 views
13

thể trùng lặp:
Determine if a generic param is a Nullable typeLàm cách nào để kiểm tra xem thông số loại chung có thể vô hiệu hóa không?

Tôi đang cố gắng để xác định xem một tham số kiểu là Nullable.

public T Get<T>(int index) 
    { 
     var none=default(T); 
     var t = typeof(T); 
     BaseVariable v = this[index].Var; 
     if (T is Nullable) //compiler error 
     { 
      if (v == ...) 
      { 
       return none; 
      } 
     } 
     //.... 
    } 

Làm cách nào để thực hiện việc này? Tôi đã thử làm t == typeof(Nullable) nhưng điều đó luôn dẫn đến sai.

Điều tôi muốn xảy ra là dành cho foo.Get<bool?>(1) thành vô số lần.

+4

Đây là một dup http://stackoverflow.com/questions/5181494/determine-if-a-generic-param-is-a-nullable-type – Nix

+0

@ Nix đó là trong VB, vì vậy có lẽ borderline không phải là một dupe. Chúng ta sẽ thấy – Earlz

+3

Các giải pháp trong C# và VB – Nix

Trả lời

Các vấn đề liên quan