bool?
Des chercheurs danois et suédois en sciences informatiques et systèmes autonomes ont décortiqué la sécurité...
Nvidia se prépare à livrer la plate-forme serveur HGX-2 qui sera capable d'exploiter la puissance de 16 GPU Tesla V100...
L'EMD, une école de commerce située à Marseille ouvre à la prochaine rentrée l'école du numérique...
System.Nullable‹T›.
Les types Nullable peuvent représenter toutes les valeurs d'un type sous-jacent T ainsi qu'une autre valeur null.
Le type sous-jacent T peut être n'importe quel type valeur non nullable. T ne peut pas être un type référence.Int32.MinValue à Int32.MaxValue à un Nullable‹int› et true,
false ou null à un Nullable‹bool›.Nullable‹bool› dans ce cas.null.
Il n'est pas possible de créer un type Nullable à partir d'un type référence.
(Les types référence prennent déjà en charge la valeur null.)T? est l'abréviation de Nullable‹T›.
Les deux formats sont interchangeables.int? x = 10; ou double? d = 4.108;.
Vous pouvez également affecter la valeur null : int? x = null;.Nullable‹T›.HasValue et Nullable‹T›.Value en lecture seule pour rechercher les valeurs null et
récupérer la valeur, comme indiqué dans l'exemple suivant : if (x.HasValue) y = x.Value;HasValue retourne true si la variable contient une valeur, ou false si elle est null.Value retourne une valeur si HasValue retourne true.
Sinon, une exception InvalidOperationException est levée.== et != avec un type Nullable, comme le montre l'exemple suivant : if (x != null) y = x.Value;.
Si a et b sont tous les deux null, a == b prend la valeur true.if (x is int valueOfX) y = valueOfX;.T? est une instance dont la propriété HasValue retourne false.GetValueOrDefault() pour retourner la valeur affectée,
ou la valeur par défaut du type valeur sous-jacent si la valeur du type Nullable est null.GetValueOrDefault(T) pour retourner la valeur affectée,
ou la valeur par défaut fournie si la valeur du type Nullable est null.??, pour affecter une valeur à un type sous-jacent basé
sur une valeur du type Nullable : int? x = null; int y = x ?? -1;.x est null, la valeur de résultat de y est -1.Nullable‹Nullable‹int›› n;T ainsi qu'une autre valeur null.
Vous pouvez faire référence à un type Nullable dans l'un des formats suivants : Nullable‹T› ou T?.
Ces deux formats sont interchangeables.null. Par exemple :null et récupérer une valeur d'un type sous-jacent,
utilisez les propriétés en lecture seule suivantes :Nullable‹T›.HasValue indique si une instance d'un type Nullable a une valeur de son type sous-jacent.
Nullable‹T›.Value obtient la valeur d'un type sous-jacent si HasValue est true.
Si HasValue est /code>false, la propriété Value lève une InvalidOperationException.
HasValue pour tester si la variable contient une valeur avant de l'afficher :null au lieu d'utiliser la propriété HasValue, comme le montre l'exemple suivant :?? pour spécifier la valeur à affecter si une valeur
de type Nullable est null (vous pouvez également utiliser pour cela la méthode Nullable‹T›.GetValueOrDefault(T)) :Nullable‹T›.GetValueOrDefault() si la valeur à utiliser quand une valeur de type Nullable est null doit être la
valeur par défaut du type valeur sous-jacent.null, le cast explicite lève une InvalidOperationException.
Un type valeur non Nullable est implicitement converti en type Nullable correspondant.null si l'un des opérandes ou les deux sont null ;
sinon, l'opérateur utilise les valeurs contenues pour calculer le résultat. Par exemple :<, >, <=, >=), si l'un des opérandes ou les deux sont null, le résultat est false.
Ne partez pas du principe que parce qu'une comparaison spécifique (par exemple <=) retourne false,
la comparaison opposée (>) retourne true. L'exemple suivant montre que 10 n'estnull,null.null donne la valeur true.HasValue retourne false, la référence null est générée.HasValue retourne true, une valeur du type valeur sous-jacent T est boxed, pas l'instance de Nullable‹T›.System.Type représente un type nullable générique fermé,
autrement dit, le type System.Nullable‹T› avec un paramètre de type spécifié T :typeof pour créer un objet System.Type.Object.GetType pour obtenir une instance Type à tester avec le code précédent.
Quand vous appelez la méthode Object.GetType sur une instance d'un type Nullable, l'instance est boxed à Object.
Comme le boxing d'une instance non nulle d'un type Nullable équivaut au boxing d'une valeur du type sous-jacent, GetType retourne un objet Type qui représente le
type sous-jacent d'un type Nullable :bool? peut contenir trois valeurs différentes : true, false et Null.
Le type bool? est comme le type de variable booléen utilisé dans SQL.
Pour vérifier que les résultats produits par les opérateurs & et | sont cohérents avec le type booléen à trois valeurs dans SQL,
les opérateurs prédéfinis suivants sont fournis :bool? operator &(bool? x, bool? y)bool? operator |(bool? x, bool? y)| x | o | x&y | x|y |
|---|---|---|---|
true |
true |
true |
true |
true |
false |
false |
true |
true |
null |
null |
true |
false |
true |
false |
true |
false |
false |
false |
false |
false |
null |
false |
null |
null |
true |
null |
true |
true |
false |
false |
true |
null |
null |
null |
null |
null.