Как обработать "return if not null" в одну строку
Для возврата значения, если оно не равно null, с помощью в C# можно использовать несколько подходов. Выбор конкретного способа проверки на null зависит от конкретной ситуации и предпочтений разработчика. Оператор is null и оператор ?. часто являются предпочтительными вариантами, так как они более читаемы и удобны в использовании. Вот несколько примеров
1. Используя ?. (null-conditional operator):
?. (null-conditional operator) - это оператор в C#, который позволяет безопасно обращаться к членам объекта, даже если сам объект равен null.
string myString = "Hello";
string result = myString?.ToUpper();
Console.WriteLine(result); // Вывод: "HELLO"
myString = null;
result = myString?.ToUpper();
Console.WriteLine(result); // Вывод: null
Этот оператор особенно полезен при работе с иерархическими или вложенными объектами, где вы можете последовательно обращаться к их членам, не беспокоясь о том, что один из объектов по пути может быть равен null.
2. Используя ?: (conditional operator):
?: (conditional operator) - это тернарный оператор в C#, который позволяет выполнять простые условные операции в одну строку кода.
string myString = "Hello";
string result = (myString != null) ? myString.ToUpper() : null;
Console.WriteLine(result); // Вывод: "HELLO"
myString = null;
result = (myString != null) ? myString.ToUpper() : null;
Console.WriteLine(result); // Вывод: null
3. Используя ?? (null-coalescing operator):
?? (null-coalescing operator) - это оператор в C#, который возвращает левый операнд, если он не равен null, в противном случае возвращает правый операнд.
string myString = "Hello";
string result = myString?.ToUpper() ?? "Default";
Console.WriteLine(result); // Вывод: "HELLO"
myString = null;
result = myString?.ToUpper() ?? "Default";
Console.WriteLine(result); // Вывод: "Default"
4. Используя лямбда-выражение и GetValueOrDefault():
string myString = "Hello";
string result = ((Func)(() => myString?.ToUpper()))();
Console.WriteLine(result); // Вывод: "HELLO"
myString = null;
result = ((Func)(() => myString?.ToUpper()))();
Console.WriteLine(result); // Вввод: null
5. Используя LINQ и Select():
string[] strings = { "Hello", null, "World" };
var results = strings.Select(s => s?.ToUpper()).ToList();
foreach (var r in results)
{
Console.WriteLine(r); // Вывод: "HELLO", null, "WORLD"
}
Все эти примеры демонстрируют, как можно обработать возврат значения, если оно не равно null, в одну строку с использованием различных операторов и методов C#. Выбор конкретного подхода зависит от предпочтений разработчика и контекста задачи.
Ссылки с примерами:
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.