Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Nullable<T> structure

 

Date de publication : novembre 2016

Représente un type valeur qui peut avoir la valeur null.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)

[SerializableAttribute]
public struct Nullable<T>
where T : struct

Paramètres de type

T

Type valeur sous-jacent du type Nullable<T> générique.

NomDescription
System_CAPS_pubmethodNullable<T>(T)

Initialise une nouvelle instance de la structure Nullable<T> avec la valeur spécifiée.

NomDescription
System_CAPS_pubpropertyHasValue

Obtient une valeur indiquant si l'objet Nullable<T> actuel a une valeur valide de son type sous-jacent.

System_CAPS_pubpropertyValue

Obtient la valeur de l'objet Nullable<T> actuel si une valeur sous-jacente valide lui a été assignée.

NomDescription
System_CAPS_pubmethodEquals(Object)

Indique si l'objet Nullable<T> actuel est égal à un objet spécifié.(Remplace ValueType.Equals(Object).)

System_CAPS_pubmethodGetHashCode()

Récupère le code de hachage de l'objet retourné par la propriété Value.(Remplace ValueType.GetHashCode().)

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_pubmethodGetValueOrDefault()

Récupère la valeur de l'objet Nullable<T> actuel ou la valeur par défaut de l'objet.

System_CAPS_pubmethodGetValueOrDefault(T)

Récupère la valeur de l'objet Nullable<T> actuel ou la valeur par défaut spécifiée.

System_CAPS_pubmethodToString()

Retourne la représentation textuelle de la valeur de l'objet Nullable<T> actuel.(Remplace ValueType.ToString().)

NomDescription
System_CAPS_puboperatorSystem_CAPS_staticExplicit(Nullable<T> to T)

Définit une conversion explicite d'une instance Nullable<T> à sa valeur sous-jacente.

System_CAPS_puboperatorSystem_CAPS_staticImplicit(T to Nullable<T>)

Crée un objet Nullable<T> initialisé à une valeur spécifiée.

Un type est dit nullable si elle peut être affectée à une valeur ou peut être affecté null, ce qui signifie que le type n’a aucune valeur. Par défaut, tous les types référencent, tels que String, sont nullable, mais la valeur de tous les types, tels que Int32, ne sont pas.

En c# et Visual Basic, vous marquez un type valeur Nullable à l’aide de la ? notation après le type de valeur. Par exemple, int? en c# ou Integer? en Visual Basic déclare un type de valeur d’entier qui peut être affecté null.

Le Nullable<T> prend en charge uniquement un type valeur comme un type nullable, car les types référence sont nullables de conception de la structure.

Le Nullable classe fournit la prise en charge complémentaire pour le Nullable<T> structure. La Nullable classe prend en charge l’obtention du type sous-jacent d’un type nullable, et les opérations de comparaison et d’égalité sur les paires de types nullable, le type valeur dont sous-jacent ne prend pas en charge les opérations de comparaison et d’égalité générique.

Les deux membres fondamentaux de la Nullable<T> structure sont les HasValue et Value propriétés. Si le HasValue propriété pour un Nullable<T> objet est true, la valeur de l’objet est accessible avec la Value propriété. Si le HasValue propriété est false, la valeur de l’objet n’est pas définie et une tentative d’accès à la Value propriété lève une InvalidOperationException.

Lorsqu’un type nullable est boxed, le common language runtime zones automatiquement la valeur sous-jacente de la Nullable<T> de l’objet, pas le Nullable<T> objet lui-même. Autrement dit, si le HasValue propriété true, le contenu de la Value propriété est convertie (boxed). Lorsque la valeur sous-jacente d’un type nullable est unboxed, le common language runtime crée un nouveau Nullable<T> structure initialisée à la valeur sous-jacente.

Si le HasValue propriété d’un type nullable est false, le résultat d’une opération boxing est null. Par conséquent, si un type nullable boxed est passé à une méthode qui attend un argument d’objet, cette méthode doit être prête à gérer le cas où l’argument est null. Lorsque null est unboxed dans un type nullable, le common language runtime crée un Nullable<T> structure et initialise ses HasValue propriété false.

En commençant par le .NET Framework 4.5.1, vous pouvez inclure un Nullable<T> type en tant que membre d’une structure exportée dans une bibliothèque WinMD. Auparavant, cela n’est pas géré.

L’exemple de code suivant définit trois lignes d’une table dans la base de données Pubs de Microsoft. La table contient deux colonnes qui ne sont pas nullables et deux colonnes qui acceptent des valeurs NULL.

using System;

class Sample 
{
    // Define the "titleAuthor" table of the Microsoft "pubs" database. 
    public struct titleAuthor 
    {
      // Author ID; format ###-##-####
      public string au_id;
      // Title ID; format AA####
      public string title_id;
      // Author ORD is nullable.
      public short? au_ord;
      // Royalty Percent is nullable.
      public int? royaltyper;
    }

    public static void Main() 
    {
      // Declare and initialize the titleAuthor array.
      titleAuthor[] ta = new titleAuthor[3];
      ta[0].au_id = "712-32-1176";
      ta[0].title_id = "PS3333";
      ta[0].au_ord = 1;
      ta[0].royaltyper = 100;

      ta[1].au_id = "213-46-8915";
      ta[1].title_id = "BU1032";
      ta[1].au_ord = null;
      ta[1].royaltyper = null;

      ta[2].au_id = "672-71-3249";
      ta[2].title_id = "TC7777";
      ta[2].au_ord = null;
      ta[2].royaltyper = 40;

      // Display the values of the titleAuthor array elements, and 
      // display a legend.
      Display("Title Authors Table", ta);
      Console.WriteLine("Legend:");
      Console.WriteLine("An Author ORD of -1 means no value is defined.");
      Console.WriteLine("A Royalty % of 0 means no value is defined.");
    }

    // Display the values of the titleAuthor array elements.
    public static void Display(string dspTitle, 
                               titleAuthor[] dspAllTitleAuthors)
    {
      Console.WriteLine("*** {0} ***", dspTitle);
      foreach (titleAuthor dspTA in dspAllTitleAuthors) {
         Console.WriteLine("Author ID ... {0}", dspTA.au_id);
         Console.WriteLine("Title ID .... {0}", dspTA.title_id);
         Console.WriteLine("Author ORD .. {0}", dspTA.au_ord ?? -1);
         Console.WriteLine("Royalty % ... {0}", dspTA.royaltyper ?? 0);
         Console.WriteLine();       
      }
    }
}
// The example displays the following output:
//     *** Title Authors Table ***
//     Author ID ... 712-32-1176
//     Title ID .... PS3333
//     Author ORD .. 1
//     Royalty % ... 100
//     
//     Author ID ... 213-46-8915
//     Title ID .... BU1032
//     Author ORD .. -1
//     Royalty % ... 0
//     
//     Author ID ... 672-71-3249
//     Title ID .... TC7777
//     Author ORD .. -1
//     Royalty % ... 40
//     
//     Legend:
//     An Author ORD of -1 means no value is defined.
//     A Royalty % of 0 means no value is defined.

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 2.0
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: