freeCodeCamp/guide/russian/csharp/null-conditional-operator/index.md

2.6 KiB
Raw Blame History

title localeTitle
Null-conditional Operator Нуль-условный оператор

Нуль-условный оператор

Операторы с нулевым условием допускают нулевую проверку с минимальным количеством кода. Например, если бы у вас было переменная сотрудника типа Employee с свойством типа Address, вы можете выполнить нулевую проверку следующим образом:

Address address = null; 
 if (employee != null) 
 { 
    address = employee.Address; 
 } 

Вы можете использовать стандартный условный оператор, чтобы сделать эту проверку более кратким:

Address address = employee != null ? employee.Address : null; 

Однако в C # 6.0 были введены нуль-условные операторы, так что теперь приведенная выше строка может просто представляться следующим образом:

Address address = student?.Address; 

Если employee равен null, адрес просто будет присвоен null, и не будет NullReferenceExeception. Это становится более полезным с более глубокими графами объектов, так как вы можете обрабатывать цепочку условного доступа членов.

Например:

string city = student?.Address?.City; 

Операторы с нулевым условием являются короткозамкнутыми, поэтому, как только одна проверка доступа к условному члену возвращает null, остальные не имеют места.

Оператор Null-coalescing

Другой полезной опцией нулевой проверки является оператор с нулевым коалесцированием. Он возвращает левый операнд, если операнд не равен нулю; в противном случае он возвращает правый операнд.

Например:

public string GetStringValue() 
 { 
    return null; 
 } 
 
 // Display the value of s if s is NOT null. If x IS null, display the string "It was null." 
 
 string x = GetStringValue(); 
 
 Console.WriteLine(x ?? "It was null."); 
 
 // Result: 
 
 "It was null."