EN CSharp Operator Null Conditional Assignment - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Assignment via null-conditional
In C# 14 null-conditional access can be the left part of the assignment. If receiver is null, the right part is not calculated.
Simple example (Example.cs)
Save this example separately as Example.cs. Run it independently of the other examples on this page.
Example.cs:
// PROJECT-EXAMPLE
int[]? values = null;
int calls = 0;
int Compute() { calls++; return 7; }
values?[0] = Compute();
System.Console.WriteLine(calls);
Result:
0
Syntax
receiver?.Property = value; / values?[index] = value;
Example 1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
public static class Program
{
public static async Task Main(string[] args)
{
Profile? profile = new();
profile?.Name = "Archer";
Console.WriteLine(profile.Name);
}
}
public class Profile { public string Name { get; set; } = ""; }
Example 2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
public static class Program
{
public static async Task Main(string[] args)
{
int[]? values = null;
int calls = 0;
int Compute() { calls++; return 7; }
values?[0] = Compute();
Console.WriteLine(calls);
}
}
Official source: Microsoft Learn.