2011-06-21 11 views
13

可能性の重複:
Determine if a generic param is a Nullable typeジェネリック型パラメータがヌル入力可能かどうかをチェックする方法?

私は型パラメータがNULL可能であるかどうかを判断しようとしています。

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; 
      } 
     } 
     //.... 
    } 

どうすればよいですか?私はt == typeof(Nullable)をやってみましたが、常にfalseになってしまいました。

私がしたいことは、foo.Get<bool?>(1)をnullにすることです。

+4

これは、DUP http://stackoverflow.com/questions/5181494/determine-if-a-generic-param-is-a-nullable-type – Nix

+0

@ですVBでのNixなので、おそらく境界線ではない。我々は – Earlz

+3

を参照してください解決策はC#とVBです – Nix

答えて

29

あなたはNullable.GetUnderlyingTypeを使用することができます。

var t = typeof(T); 
// ... 
if (Nullable.GetUnderlyingType(t) != null) 
{ 
    // T is a Nullable<> 
} 
関連する問題