Skip to content

RU CSharp Operator Null Conditional Assignment

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Присвоение через null-conditional

Справочник C# · Практическое руководство

В C# 14 null-conditional доступ может быть левой частью присвоения. Если receiver равен null, правая часть не вычисляется.

Простой пример (Example.cs)

Сохраните этот пример отдельно как Example.cs. Запускайте его независимо от остальных примеров страницы.

Example.cs:

// PROJECT-EXAMPLE
int[]? values = null;
int calls = 0;
int Compute() { calls++; return 7; }
values?[0] = Compute();
System.Console.WriteLine(calls);

Результат:

0

Синтаксис

receiver?.Property = value; / values?[index] = value;

Приклад 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; } = ""; }

Приклад 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);
    }
}

Официальный источник: Microsoft Learn.

Clone this wiki locally