Я читал код С# сегодня и нашел эту строку:
if (ProgenyList.ItemContainerGenerator.Status != System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated) return;
Обратите внимание, что вы можете без прокрутки указать, что это оператор "if", который работает с ItemContainerGenerator.Status, но вы не можете легко сказать, что если предложение "if" оценивается как "true", метод вернется в этот момент.
Реально я должен был перенести оператор "return" в строку сам по себе, но это заставило меня задуматься о языках, которые сначала разрешают "затем" часть заявления. Если разрешено С#, строка может выглядеть так:
return if (ProgenyList.ItemContainerGenerator.Status != System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated);
Это может быть немного "аргументированным", но мне интересно, что люди думают об этой конструкции. Это может привести к тому, что строки станут более читаемыми, но это также может быть катастрофическим. Представьте себе этот код:
return 3 if (x > y);
Логически мы можем вернуться только тогда, когда x > y, потому что там нет "else", но часть меня смотрит на это и думает: "мы все еще возвращаемся, если x <= y? Если да, то что мы возвращаем?"
Что вы думаете о конструкции "then before the if"? Он существует на вашем языке выбора? Вы часто используете его? Может ли С# извлечь из этого выгоду?