Avatar ·

C#中两个连续问号是什么意思?

你好!我刚开始学习C#,偶然发现了一个奇怪的语法。在别人的代码中,我看到了这样的结构: ```csharp string name = userName ?? "Гость"; ``` 这里的两个问号 `??` 是做什么的?我知道 `userName` 是某个变量,但为什么要放两个问号然后跟一个字符串?这是某种检查吗?我试着搜索过,但找到的大多是关于三元运算符 `? :` 的解释,而这个看起来不一样。 我还注意到有时会写 `??=` ——这也相关吗?比如在这段代码中: ```csharp list ??= new List(); ``` 你能用简单的话解释一下这是如何工作的以及为什么需要它吗?最好有例子,因为我是视觉型学习者。先谢谢了! <<>>

C#中的null合并运算符(??)

C#中的两个问号 ?? 是 null-coalescing operator(null合并运算符)。它用于检查值是否为 null,如果是,则返回右侧的表达式;否则返回左侧的值。