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)
							 |