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