Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
1 sur 1 ont trouvé cela utile - Évaluez ce sujet

Nullable<T>, structure

Représente un objet dont le type sous-jacent est un type valeur qui peut également être assigné null comme un type référence.

Espace de noms :  System
Assembly :  mscorlib (dans mscorlib.dll)
[SerializableAttribute]
public struct Nullable<T>
where T : struct, new()

Paramètres de type

T

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

Le type Nullable<T> expose les membres suivants.

  Nom Description
Méthode publique Pris en charge par XNA Framework b3h38hb0.PortableClassLibrary(fr-fr,VS.100).gif Nullable<T> Initialise une nouvelle instance de la structure Nullable<T> avec la valeur spécifiée.
Début
  Nom Description
Propriété publique Pris en charge par XNA Framework b3h38hb0.PortableClassLibrary(fr-fr,VS.100).gif HasValue Obtient une valeur indiquant si l'objet Nullable<T> actuel a une valeur.
Propriété publique Pris en charge par XNA Framework b3h38hb0.PortableClassLibrary(fr-fr,VS.100).gif Value Obtient la valeur Nullable<T> actuelle.
Début
  Nom Description
Méthode publique Pris en charge par XNA Framework b3h38hb0.PortableClassLibrary(fr-fr,VS.100).gif Equals Indique si l'objet Nullable<T> en cours est égal à un objet spécifié. (Substitue ValueType.Equals(Object).)
Méthode protégée Pris en charge par XNA Framework b3h38hb0.PortableClassLibrary(fr-fr,VS.100).gif Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique Pris en charge par XNA Framework b3h38hb0.PortableClassLibrary(fr-fr,VS.100).gif GetHashCode Récupère le code de hachage de l'objet retourné par la propriété Value. (Substitue ValueType.GetHashCode().)
Méthode publique Pris en charge par XNA Framework b3h38hb0.PortableClassLibrary(fr-fr,VS.100).gif GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique Pris en charge par XNA Framework b3h38hb0.PortableClassLibrary(fr-fr,VS.100).gif GetValueOrDefault() Récupère la valeur de l'objet Nullable<T> actuel ou la valeur par défaut de l'objet.
Méthode publique Pris en charge par XNA Framework b3h38hb0.PortableClassLibrary(fr-fr,VS.100).gif GetValueOrDefault(T) Récupère la valeur de l'objet Nullable<T> actuel ou la valeur par défaut spécifiée.
Méthode protégée Pris en charge par XNA Framework b3h38hb0.PortableClassLibrary(fr-fr,VS.100).gif MemberwiseClone Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode publique Pris en charge par XNA Framework b3h38hb0.PortableClassLibrary(fr-fr,VS.100).gif ToString Retourne la représentation textuelle de la valeur de l'objet Nullable<T> actuel. (Substitue ValueType.ToString().)
Début
  Nom Description
Opérateur public Membre statique Pris en charge par XNA Framework b3h38hb0.PortableClassLibrary(fr-fr,VS.100).gif Explicit(Nullable<T> to T) Retourne une valeur Nullable<T> spécifiée.
Opérateur public Membre statique Pris en charge par XNA Framework b3h38hb0.PortableClassLibrary(fr-fr,VS.100).gif Implicit(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 conséquent, un type Nullable peut soit exprimer une valeur soit exprimer qu'aucune valeur n'existe. Par exemple, un type référence, tel que String est nullable, alors qu'un type valeur, tel que Int32 ne l'est pas. Un type valeur ne peut pas être Nullable parce qu'il a une capacité suffisante pour exprimer uniquement les valeurs appropriées pour ce type ; il n'a pas la capacité supplémentaire requise pour exprimer une valeur Nul.

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

Scénario

Utiliser des types Nullables pour représenter des choses qui existent ou n'existent pas, selon les circonstances. Par exemple, un attribut facultatif d'une balise HTML peut exister dans une balise, mais pas dans une autre ou une colonne nullable d'une table de base de données peut exister dans une ligne de la table, mais pas dans une autre.

Vous pouvez représenter l'attribut ou la colonne sous la forme d'un champ dans une classe et vous pouvez définir le champ comme un type valeur. Le champ peut contenir toutes les valeurs valides pour l'attribut ou la colonne, mais il ne peut pas contenir de valeur supplémentaire qui signifie que l'attribut ou la colonne n'existe pas. Dans ce cas, définissez le champ comme étant un type Nullable au lieu d'un type valeur.

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.

Boxing et unboxing

Lorsqu'un type Nullable fait l'objet d'un boxing, le Common Language Runtime effectue automatiquement un 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 fait l'objet d'un boxing. Lorsque la valeur sous-jacente d'un type Nullable fait l'objet d'un unboxing, 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.

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, 3.5, 3.0, 2.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Pris en charge dans :

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

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.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ