Знаем ли мы точные причины, по которым это разрешено?
Да. Зарегистрироваться Логин yield
только для текста ключевое слово:. Он был введен в C# 2, и команда не захотела сломать код, который уже использовал yield
в качестве идентификатора.
То же самое касается других контекстуальных ключевых слов, которые были введены с 1.0, например partial
. См. Eric Lippert's blog post для получения полного списка.
, но все же добавляет путаницы и уменьшить читаемость кода
Так что не делать, что тогда? Есть много вещей, которые вы можете сделать, чтобы сделать ваш код действительно, очень трудно читать. Вы можете сделать все ваши имена переменных только символами подчеркивания:
private int _;
private string __;
// etc
Вы делаете это? Если нет, то почему вы ожидаете, что люди напишут путаный код с yield
?
Я считаю, что все по-другому. Во-первых, устанавливаются правила по именам переменных, затем некоторые ключевые слова запрещены к использованию. Таким образом, не должно быть никаких оснований позволять что-то. Знаете ли вы какую-либо вескую причину, чтобы отклонить «yield» как имя переменной? –