L'opérateur ?? (opérateur de fusion nul) en C# fournit une valeur alternative pour les opérandes nuls : vérifie si l'opérande x est nul. Si x n'est pas nul, renvoie la valeur de x. Si x est nul, renvoie l'expression de valeur alternative y.
Opérateur ?? en C#
L'opérateur ?? en C#, également connu sous le nom d'opérateur de coalescence nul, est utilisé pour fournir une valeur alternative lorsque l'opérande est nul.
Syntaxe
<code class="c#">x ?? y</code>
Où :
x
: L'expression pour vérifier si elle est nulle. x
:要检查是否为 null 的表达式。y
:如果 x
为 null,则返回的备用值表达式。工作原理
?? 操作符首先检查 x
是否为 null。如果不是,它将返回 x
的值。但是,如果 x
为 null,它将返回备用值表达式 y
的值。
示例
<code class="c#">string name = null; string defaultName = "Unknown"; string fullName = name ?? defaultName; // fullName 将为 "Unknown",因为 name 为 null</code>
如何使用
?? 操作符通常用于防止空引用异常,并在对象或变量为 null 时提供默认值。它可以使代码更加简洁和安全。
与委托比较
?? 操作符的行为类似于条件委托,但它更简洁且更易于阅读。以下代码使用委托实现相同的功能:
<code class="c#">string name = null; string defaultName = "Unknown"; Func<string, string> getName = (n) => n ?? defaultName; string fullName = getName(name);</code>
优点
缺点
x
不是引用类型,或者 y
的类型与 x
y
: expression de valeur alternative renvoyée si x
est nul. x
est nul. Sinon, il renvoie la valeur de x
. Cependant, si x
est nul, il renvoie la valeur de l'expression de valeur alternative y
. 🎜🎜🎜Exemple🎜🎜rrreee🎜🎜Comment utiliser l'opérateur 🎜🎜🎜?? est souvent utilisé pour empêcher les exceptions de référence nulle et fournir une valeur par défaut lorsqu'un objet ou une variable est nul. Cela peut rendre le code plus concis et plus sûr. L'opérateur 🎜🎜🎜Comparaison avec Delegate🎜🎜🎜 ?? se comporte comme un délégué conditionnel, mais il est plus propre et plus facile à lire. Le code suivant utilise des délégués pour obtenir la même fonctionnalité : 🎜rrreee🎜🎜 Avantages 🎜🎜🎜🎜 Concis et clair 🎜🎜 Réduire les exceptions de référence nulle 🎜🎜 Améliorer la lisibilité du code 🎜🎜🎜🎜 Inconvénients 🎜🎜🎜🎜 Peut prêter à confusion si x n'est pas un type de référence, ou le type de y
est incompatible avec x
. 🎜🎜Impossible de spécifier plusieurs valeurs alternatives. 🎜🎜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!