Есть ли в C# сокращение "что-то, если (условие);" заявление?
Просто и кратко: есть ли в C# сокращение? if
заявление, похожее на Руби?
return if (condition)
1 ответ
Нет, это не так. Стандартный путь точно такой же длины, поэтому, вероятно, такая стенография не будет оправдана. Рассмотрим обычный синтаксис:
if (condition) return;
против гипотетического:
return if (condition);
Возможной причиной введения такого "обратного" синтаксиса было бы то, что первичное намерение было выражено первым. Из-за чтения слева направо это будет легче понять, что приведет к более читаемому коду.
С точки зрения языкового дизайна, было бы целесообразно использовать другое ключевое слово, такое как when
во избежание запутанных ошибок. Рассмотрим следующие две строки кода:
return // missing ; here
if (condition); // no warning (except empty 'then' part)
вероятно, должно было быть написано как:
return; // ; here present
if (condition); // unreachable code warning here
С точки зрения сохранения характера это имеет смысл в begin … end
язык. Конструкция как это:
if condition begin
return;
end if;
будет значительно короче и, вероятно, более читабельным, если записать как:
return when condition;