В 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
осталось бы неизменным.