Based on: C# Keywords
Keywords are predefined, reserved identifiers that have special meanings to the compiler.
and Based on: Contextual Keywords
A contextual keyword is used to provide a specific meaning in the code, but it is not a reserved word in C#.
For Keyword new we have multiple situation for use it, for example:
//One situation for create an instance of class:
StringBuilder sr=new StringBuilder();
//Another situation for method hiding in polymorphism subject of OOP:
public new void Foo()
{
//Some Code
}
As you can see new keyword has Several meaning Depending on where it's used, then in my openion new must considered as Contextual Keyword and not keyword!
then, the Definition of Contextual keyword is wrong? or considering new as whole keyword? and why?