Почему встроенные -типы в C #являются ключевыми словами языка?

В C #такие идентификаторы, как intили string, на самом деле являются ключевыми словами на уровне языка.
В чем причина этого?

Обратите внимание: если бы авторы хотели запретить типы пользователей с такими именами, это могло бы привести к семантической, а не к синтаксической ошибке.

Некоторые уточнения на основе ответов:

  1. Они являются ключевыми словами, потому что это делает разбор возможным/упрощением
    Я не понимаю, почему, так как я разрабатываю парсер, и иметь Type.Rule = Identifierнамного проще, чем Type.Rule = Identifier | "int" | "string" |....

  2. Они являются ключевыми словами, потому что являются специальными псевдонимами
    var. и dynamicтакже являются особыми вещами, но не ключевыми словами (из соображений совместимости, тем не менее это демонстрирует, что быть ключевым словом не обязательно быть особенным ). В другом примере применение [Serializable]к типу создает магический модификатор метаданных IL serializableвместо стандартного пользовательского атрибута. Но это еще не ключевое слово.

  3. Они являются ключевыми словами, потому что они были ключевыми словами в других языках
    . Хороший ответ, но тогда почему они являются ключевыми словами на других языках? Кроме того, их, безусловно, можно выделить синим цветом, не будучи ключевыми словами, так зачем привносить это из других языков?

12
задан Andrey Shchekin 21 July 2012 в 11:54
поделиться