Why built-in types in C# are language keywords?
问题 In C#, identifiers such as int or string are actually language level keywords. What is the reason for that? Note that if the authors wanted to disallow user types with these names, that could have made that a semantic error, not syntax error. Some clarifications based on answers: They are keywords because it makes parsing possible/easier I do not see why, as I am developing a parser, and having Type.Rule = Identifier is much simpler than Type.Rule = Identifier | "int" | "string" | ... . They