Files
freeCodeCamp/guide/chinese/csharp/null-coalescing-operator/index.md
Randell Dawson 0a1eeea424 fix(guide) Replace invalid prism code block names (#35961)
* fix: replace sh with shell

fix replace terminal with shell

fix replace node with js

fix replace output with shell

fix replace cs with csharp

fix replace c++ with cpp

fix replace c# with csharp

fix replace javasctipt with js

fix replace syntax  with js

fix replace unix with shell

fix replace linux with shell

fix replace java 8 with java

fix replace swift4 with swift

fix replace react.js with jsx

fix replace javascriot with js

fix replace javacsript with js

fix replace c++ -  with cpp

fix: corrected various typos

fix: replace Algorithm with nothing

fix: replace xaml with xml

fix: replace solidity with nothing

fix: replace c++ with cpp

fix: replace txt with shell

fix: replace code with json and css

fix: replace console with shell
2019-05-15 19:08:19 +02:00

76 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Null-coalescing Operator
localeTitle: 空结合运算符
---
# 空结合运算符
C中的null-coalescing运算符用于帮助将一个变量分配给另一个变量如果源值为`null` ,则指定备用值。 C中的null-coalescing运算符是`??`
## 例1
由于`name``null` `clientName`将为`clientName`分配值“John Doe”。
```csharp
string name = null;
string clientName = name ?? "John Doe";
Console.WriteLine(clientName);
```
```csharp
> John Doe
```
## 例2
由于`name`不为`null` `clientName`将为`clientName`分配`name`的值即“Jane Smith”。
```csharp
string name = "Jane Smith";
string clientName = name ?? "John Doe";
Console.WriteLine(clientName);
```
```csharp
> Jane Smith
```
## 替代if ... else语句
您可以使用`if...else`语句来测试是否存在`null`并分配不同的值。
```csharp
string clientName;
if (name != null)
clientName = name;
else
clientName = "John Doe";
```
但是使用null-coalescing运算符可以大大简化这一点。
```csharp
string clientName = name ?? "John Doe";
```
## 条件(三元)运算符的替代
也可以使用条件运算符来测试`null`的存在并分配不同的值。
```csharp
string clientName = name != null ? name : "John Doe";
```
同样这可以使用null-coalescing运算符进行简化。
```csharp
string clientName = name ?? "John Doe";
```
## 参考
* [??运算符C参考](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-conditional-operator)