Ermitteln des gekapselten Typen bei Nullable

6. September 2010

Aktuell bin ich als .NET-Entwickler bei einem unserer Großkunden unterwegs und hatte dabei eine kleine Herausforderung im Umgang mit Wertetypen zu bewältigen.

Die Anforderung: egal ob ein Wertetyp T oder Nullable<T> ist, soll immer der Typ T für weitere Auswertungen verwendet werden.

Die Lösung: eine kleine Erweiterungsmethode auf Type, die genau das erledigt…

   1: public static class TypeExtensions

   2: {

   3:      public static Type GetBareType(this Type dataType)

   4:      {

   5:          if (dataType != null)

   6:          {

   7:              if (dataType.IsGenericType && 

   8:                 (dataType.GetGenericTypeDefinition() == typeof(Nullable<>)))

   9:              {

  10:                  dataType = Nullable.GetUnderlyingType(dataType);

  11:              }

  12:          }

  13:          return dataType;

  14:      }

  15: }