Понимание оператора ??= в C# – объяснение на примерах

В C# оператор ??=называется оператором присваивания, объединяющим нулевые значения. Это сокращенный оператор, который сочетает в себе оператор объединения нулей (??) с оператором присваивания (=).

Оператор объединения значений NULL (??) используется для предоставления значения по умолчанию для типа, допускающего значение NULL, или ссылочного типа, если оно имеет значение NULL. Он возвращает левый операнд, если он не равен нулю, в противном случае он возвращает правый операнд.

Оператор присваивания, объединяющий нулевые значения (??=) присваивает правый операнд левому операнду только в том случае, если левый операнд имеет значение NULL. Если левый операнд не равен нулю, присвоение пропускается и исходное значение левого операнда сохраняется.

Вот пример, иллюстрирующий использование оператора ??=:

string name = null;
string defaultName = "John Doe";
name ??= defaultName;
Console.WriteLine(name);  // Output: John Doe

В приведенном выше примере переменная nameимеет значение null, поэтому ей присваивается значение defaultNameс помощью оператора ??=. Если бы nameне было нулевым, присвоение было бы пропущено, а значение nameосталось бы неизменным.