Exporter (0) Imprimer
Développer tout

Types nullables (Guide de programmation C#)

Les types nullables sont des instances du struct System.Nullable. Un type nullable peut représenter la plage normale de valeurs pour son type valeur sous-jacent, plus une valeur null supplémentaire. Par exemple, un Nullable<Int32>, prononcez « Nullable d'Int32 », peut avoir une valeur comprise entre -2147483648 et 2147483647, ou la valeur null. Vous pouvez assigner à un Nullable<bool> les valeurs true ou false, ou null. La possibilité d'assigner null à des types numériques et booléens est particulièrement utile lorsque vous utilisez des bases de données et d'autres types de données contenant des éléments auxquels vous ne pouvez pas assigner de valeur. Par exemple, un champ booléen dans une base de données peut stocker les valeurs true ou false, ou peut être indéfini.

class NullableExample
{
    static void Main()
    {
        int? num = null;
        if (num.HasValue == true)
        {
            System.Console.WriteLine("num = " + num.Value);
        }
        else
        {
            System.Console.WriteLine("num = Null");
        }

        //y is set to zero
        int y = num.GetValueOrDefault();

        // num.Value throws an InvalidOperationException if num.HasValue is false
        try
        {
            y = num.Value;
        }
        catch (System.InvalidOperationException e)
        {
            System.Console.WriteLine(e.Message);
        }
    }
}

Les éléments précités afficheront la sortie suivant :

num = Null

Nullable object must have a value.

Vue d'ensemble des types nullables

Les types nullables ont les caractéristiques suivantes :

  • Les types nullables représentent des variables de type de valeur auxquelles vous pouvez assigner la valeur null. Vous ne pouvez pas créer de type nullable sur la base d'un type référence. (Les types référence prennent déjà en charge la valeur null.)

  • La syntaxe T? est le format abrégé pour System.Nullable<T>, où T est un type valeur. Les deux formats sont interchangeables.

  • Assignez une valeur à un type nullable comme pour un type valeur ordinaire, par exemple int? x = 10; ou double? d = 4.108;

  • Utilisez la propriété System.Nullable.GetValueOrDefault pour retourner ou la valeur assignée, ou la valeur par défaut pour le type sous-jacent si la valeur est null, par exemple int j = x.GetValueOrDefault();

  • Utilisez les propriétés en lecture seule HasValue et Value pour rechercher une valeur nulle et la récupérer, par exemple if(x.HasValue) j = x.Value;

    • La propriété HasValue retourne true si la variable contient une valeur, ou false si elle est nulle.

    • La propriété Value retourne une valeur si une valeur est assignée, sinon une System.InvalidOperationException est levée.

    • La valeur par défaut pour une variable de type nullable définit HasValue à false. Value est indéfini.

  • Utilisez l'opérateur ?? pour assigner une valeur par défaut qui sera appliquée lorsqu'un type nullable dont la valeur actuelle est nulle est assigné à un type non nullable, par exemple int? x = null; int y = x ?? -1;

  • Les types nullables imbriqués ne sont pas autorisés. La ligne suivante ne sera pas compilée : Nullable<Nullable<int>> n;

Rubriques connexes

Spécification du langage C#

Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.

  • 24 types nullables

Voir aussi

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft