Все мы любим тринарный оператор
x ? y : z и часто юзаем его для конкатенации строк, например, вот такvar sql = "SELECT x FROM y WHERE z " + (condition ? " AND xyz" : "");
Но чаще вот так - это в разметке, во вьюхах:<div class='someclass @(condition ? "anotherclass" : "")'>
(так делают не только дотнетчики, а вообще все)Вот эта дурацкая часть
: "" меня бесила много лет.И не только меня, Майкрософту даже в гитхаб поставили issue - "сделайте в C# 9 тернарный оператор без правой части" (не уверен, кстати, что стоит). Да и в гугле вот такой поиск
ternary operator without else site:stackoverflow.com выдает аж 62 тысячи результатов только со Stackoverflow, народ жалуется на всех языках - от джаваскрипта до питона.Как решать эту проблему в сишарпе - запиливаем вот такой экстеншен для
bool под названием Then public static T Then<T>(this bool value, T result)(можно, кстати, не выпендриваться с дженериком, а просто сделать string. но так красивее)
{
return value ? result : default(T);
}
И жить сразу намного проще. Смотрите, какой охуенный код:
<div class='someclass @condition.Then("anotherclass")'>