Есть ли в 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;
Другие вопросы по тегам