Question

  

Possible en double:    Qu'est-ce que l'opérateur « ?? » pour?

S'il vous plaît expliquez-moi ce qui est de l'utilisation « ?? » en dessous de code et ce qui est « ?? » utilisé pour.

if ((this.OrderDate ?? DateTime.MinValue) > DateTime.Today)

{         e.Description = « La date de la commande ne doit pas être à l'avenir. »;         return false;     }

le code ci-dessus est à http://nettiers.com/EntityLayer.ashx

Merci.

Était-ce utile?

La solution

(Ceci est un double, mais il est difficile de rechercher, donc je suis assez heureux de fournir plus une autre cible pour les recherches futures ...)

Il est opérateur coalescent null . Essentiellement, il évalue le premier opérande, et si le résultat est nul (soit une référence nulle ou la valeur nulle pour un type valeur nullable), il évalue le deuxième opérande. Le résultat est selon opérande a été évalué dernière, de façon efficace.

Notez qu'en raison de sa associativité, vous pouvez écrire:

int? x = E1 ?? E2 ?? E3 ?? E4;

si E1, E2, E3 et E4 sont toutes les expressions de type int? -. Il va commencer avec E1 et progresser jusqu'à ce qu'il trouve une valeur non nulle

Le premier opérande doit être un type nullable, mais e second opérande peut être non nulle, dans ce cas, le type d'ensemble de l'expression est non nulle. Par exemple, supposons que E4 est une expression de type int (mais tous les autres sont encore int? alors vous pouvez faire x non annulable:

int x = E1 ?? E2 ?? E3 ?? E4;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top