ようこそ。睡眠不足なプログラマのチラ裏です。

任意の型についてNullableであるかどうか判断する方法

  public static bool IsNullable(Type type)
  {
    //クラス(参照型)かどうか
    if (type.IsClass)
    {
      // not Nullable
      return false;
    }

    //ジェネリク型かどうか
    if (type.IsGenericType) 
    {
      //ジェネリック型の元となるSystem.Typeオブジェクトを取得し、それがNullable値型であるかどうか
      if (type.GetGenericTypeDefinition() == typeof(Nullable<>))
      {
        // Nullable
        return true;
      }
    }
    //いずれでもないなら not Nullable
    return false;
  }


C#2.0(というか.NET Framework2.0)のBata2にあった、nullを設定できる型であるかどうか判断する基準となる
System.INullablevalueっつーインターフェイスが、
リリース版ではなくなっている件。これはMicrosoftの罠としか言いようがないw


/(^o^)\ナンテコッタイ


そんなわけで、任意のTypeについてNullableかどうか調べる方法のメモ。
まあ、たいした話ではないんだけど、誰かの役に立つかもしれない。


あけましておめでとうございます。
今年もマイペースでいきます。