Maison >développement back-end >C++ >Que fait l'opérateur à double interdiction (??) en C #?
Double signe de question (??) La signification de l'opérateur de l'opérateur
dans la ligne de code suivante:
Deux points d'interrogation (??) représentent un opérateur de fusion d'air. Contrairement à l'opérateur ternaire, l'opérateur de fusion d'air exécute l'affectation conditionnelle, et non les conditions d'exécution.
<code class="language-csharp">FormsAuth = formsAuth ?? new FormsAuthenticationWrapper();</code>
spécifiquement, l'expression
équivalent à:
formsAuth ?? new FormsAuthenticationWrapper()
<code class="language-csharp">FormsAuth = formsAuth != null ? formsAuth : new FormsAuthenticationWrapper();</code>
Si n'est pas nul, il l'a attribue à
formsAuth
Si FormsAuth
est affectée à formsAuth
FormsAuthenticationWrapper
En bref, cela signifie "Si FormsAuth
n'est pas nul, utilisez
formsAuth
Contrairement aux symboles informatiques ternaires, l'opérateur de fusion d'air n'évalue son expression qu'une seule fois. Par conséquent, si est appelé par des effets secondaires, ses effets secondaires ne déclencheront qu'une seule fois. formsAuth
FormsAuthenticationWrapper
Afin d'expliquer davantage, les expressions suivantes attribueront la première réponse non empty pour répondre. Si toutes les réponses sont nuls, la réponse restera nulle:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!