76 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: Null-coalescing Operator
 | |
| ---
 | |
| 
 | |
| # Null-coalescing Operator
 | |
| 
 | |
| The null-coalescing operator in C# is used to help assign one variable to another and specify an alternate value if the source value is `null`. The null-coalescing operator in C# is `??`.
 | |
| 
 | |
| ## Example 1
 | |
| 
 | |
| Since `name` is `null`, `clientName` will be assigned the value "John Doe".
 | |
| 
 | |
| ```cs
 | |
| string name = null;
 | |
| 
 | |
| string clientName = name ?? "John Doe";
 | |
| 
 | |
| Console.WriteLine(clientName);
 | |
| ```
 | |
| 
 | |
| ```cs
 | |
| > John Doe
 | |
| ```
 | |
| 
 | |
| ## Example 2
 | |
| 
 | |
| Since `name` is not `null`, `clientName` will be assigned the value of `name`, which is "Jane Smith".
 | |
| 
 | |
| ```cs
 | |
| string name = "Jane Smith";
 | |
| 
 | |
| string clientName = name ?? "John Doe";
 | |
| 
 | |
| Console.WriteLine(clientName);
 | |
| ```
 | |
| 
 | |
| ```cs
 | |
| > Jane Smith
 | |
| ```
 | |
| 
 | |
| ## Alternative to if...else Statement
 | |
| 
 | |
| You could use an `if...else` statement to test for the presence of `null` and assign a different value.
 | |
| 
 | |
| ```cs
 | |
| string clientName;
 | |
| 
 | |
| if (name != null)
 | |
| 	clientName = name;
 | |
| else
 | |
| 	clientName = "John Doe";
 | |
| ```
 | |
| 
 | |
| However, this can be greatly simplified using the null-coalescing operator.
 | |
| 
 | |
| ```cs
 | |
| string clientName = name ?? "John Doe";
 | |
| ```
 | |
| 
 | |
| ## Alternative to Conditional (Ternary) Operator
 | |
| 
 | |
| It is also possible to use the conditional operator to test for the presence of `null` and assign a different value.
 | |
| 
 | |
| ```cs
 | |
| string clientName = name != null ? name : "John Doe";
 | |
| ```
 | |
| 
 | |
| Again, this can be simplified using the null-coalescing operator.
 | |
| 
 | |
| ```cs
 | |
| string clientName = name ?? "John Doe";
 | |
| ```
 | |
| 
 | |
| ## References
 | |
| 
 | |
| * [?? Operator (C# Reference)](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-conditional-operator) |