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

Boxing des types Nullable (Guide de programmation C#)

Les objets basés sur des types Nullable sont boxed uniquement si l'objet n'est pas Null. Si HasValue a la valeur false, la référence d'objet est assignée à null au lieu de boxing. Par exemple :

bool? b = null;
object o = b;
// Now o is null.

Si l'objet n'est pas Null (si HasValue a la valeur true), le boxing s'applique au type sous-jacent sur lequel repose l'objet Nullable. Le boxing d'un type valeur Nullable non Null convertit le type valeur lui-même, pas le System.Nullable<T> qui encapsule le type valeur. Par exemple :

bool? b = false;
int? i = 44;
object bBoxed = b; // bBoxed contains a boxed bool.
object iBoxed = i; // iBoxed contains a boxed int.

Les deux objets boxed sont identiques à ceux créés par le boxing des types non Nullable. Comme les types boxed non Nullable, ils peuvent être unboxed en types Nullable, comme dans l'exemple suivant :

bool? b2 = (bool?)bBoxed;
int? i2 = (int?)iBoxed;

Le comportement de types Nullable lorsqu'ils sont boxed a deux avantages :

  1. Les objets Nullable et leur équivalent boxed peuvent être testés pour chercher des valeurs Null :

      bool? b = null;
      object boxedB = b;
      if (b == null)
      {
        // True.
      }
      if (boxedB == null)
      {
        // Also true.
      }
    
  2. Les types Nullable boxed prennent en charge pleinement les fonctionnalités du type sous-jacent :

      double? d = 44.4;
      object iBoxed = d;
      // Access IConvertible interface implemented by double.
      IConvertible ic = (IConvertible)iBoxed;
      int i = ic.ToInt32(null);
      string str = ic.ToString();
    

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