Déterminer si un Type est Nullable

Publié le 05 septembre 2008 par Jeremy.jeanson

La méthode d'extension suivante permet de déterminer si un type est Nullable. Cela peut sembler facile à lire, mais je vous assure qu'il m'a fallu du temps pour trouver l'idée.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Tools
{
    public static class TypeExtensions
    {
        /// <summary>
        /// Permet de déterminer si un Type est Nullable
        /// </summary>
        /// <param name="sender"></param>
        /// <returns></returns>
        public static Boolean IsNullable(this Type sender)
        {
            return sender.IsGenericType
                & sender.GetGenericTypeDefinition().Equals(typeof(Nullable<>));
        }
    }
}

Petite explication de texte, il s' agit d'une méthode d'extension qui cherche dans un premier temps si le type est générique (donc peut être un Nullable), et ensuite si la définition du type générique est Nullable<>.