Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Nullable<T>, structure

Représente un type valeur qui peut avoir comme 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.

Le type Nullable<T> expose les membres suivants.

  NomDescription
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreNullable<T>Initialise une nouvelle instance de la structure Nullable<T> avec la valeur spécifiée.
Début

  NomDescription
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreHasValueObtient une valeur indiquant si l'objet Nullable<T> actuel a une valeur valide de son type sous-jacent.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreValueObtient la valeur de l'objet Nullable<T> actuel s'il a lui été assigné une valeur sous-jacente valide.
Début

  NomDescription
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreEqualsIndique si l'objet Nullable<T> en cours est égal à un objet spécifié. (Substitue ValueType.Equals(Object).)
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetHashCodeRécupère le code de hachage de l'objet retourné par la propriété Value. (Substitue ValueType.GetHashCode().)
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetValueOrDefault()Récupère la valeur de l'objet Nullable<T> actuel ou la valeur par défaut de l'objet.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetValueOrDefault(T)Récupère la valeur de l'objet Nullable<T> actuel ou la valeur par défaut spécifiée.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreToStringRetourne la représentation textuelle de la valeur de l'objet Nullable<T> actuel. (Substitue ValueType.ToString().)
Début

  NomDescription
Opérateur publicMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreExplicit(Nullable<T> to T)Retourne une valeur Nullable<T> spécifiée.
Opérateur publicMembre statiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreImplicit(T to Nullable<T>)Crée un objet Nullable<T> initialisé à une valeur spécifiée.
Début

Un type est dit Nullable s'il est possible de lui assigner une valeur ou de lui assigner null, ce qui signifie qu'il n'a aucune valeur du tout. Par défaut, tous les types référence, tels que String, sont Nullable, mais tous les types valeur, tels que Int32, ne le sont pas.

En C# et Visual Basic, vous définissez un type valeur nullable en utilisant la notation ? après le type valeur. Par exemple, int? en C# ou Integer? en Visual Basic déclare un type valeur entière qui peut être défini à null.

La structure Nullable<T> prend en charge l'utilisation unique d'un type valeur comme type Nullable parce que les types référence sont Nullables de conception.

La classe Nullable fournit une prise en charge complémentaire de la structure Nullable<T>. La classe Nullable permet d'obtenir le type sous-jacent d'un type Nullable, et les opérations de comparaison et d'égalité sur les paires de types nullables dont le type valeur sous-jacent ne prend pas en charge les opérations de comparaison générique et d'égalité.

Propriétés fondamentales

Les deux membres fondamentaux de la structure Nullable<T> sont les propriétés HasValue et Value. Si la propriété HasValue d'un objet Nullable<T> est true, la valeur de l'objet est accessible grâce à la propriété Value. Si la propriété HasValue est false, la valeur de l'objet est indéfinie et une tentative d'accès à la propriété Value lève une InvalidOperationException.

Conversion boxing et unboxing

Lorsqu'un type Nullable est boxed, le Common Language Runtime effectue automatiquement une conversion boxing de la valeur sous-jacente de l'objet Nullable<T>, et non de l'objet Nullable<T> lui-même. Autrement dit, si la propriété HasValue est true, le contenu de la propriété Value est boxed. Lorsque la valeur sous-jacente d'un type Nullable est unboxed, le Common Language Runtime crée une structure Nullable<T> initialisée à la valeur sous-jacente.

Si la propriété HasValue d'un type Nullable est false, le résultat d'une opération de boxing est null. Par conséquent, si un type Nullable ayant fait l'objet d'un boxing est passé à une méthode qui attend un argument objet, cette méthode doit être prête à gérer le cas où l'argument est null. Lorsque null fait l'objet d'un unboxing dans un type Nullable, le Common Language Runtime crée une nouvelle structure Nullable<T> et initialise sa propriété HasValue avec false.

.NET Framework 4.5.1 et composants d'exécution windows

À compter de .NET Framework 4.5.1, vous pouvez inclure un type d'Nullable<T> en tant que membre d'une structure exportée vers une bibliothèque de WinMD. Précédemment, cela n'était pas pris en charge.

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


// This code example demonstrates the Nullable<T> class.
// The code example defines a database table in which two columns 
// are nullable. In the application, an array of rows is created 
// and initialized. The table rows could subsequently be 
// written to a database.

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();       
       }
    }
}

/*
This code example produces the following results:

*** 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.

*/


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

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