我正在研究C# 5.0的语法,但不太理解“base”的用法。在参考手册中,定义了“基类访问”的概念:
base-access:
base . identifier
base [ expression-list ]
“base”是一个关键字,而且似乎只有这种情况。但是,我遇到了一些C#输入,例如
base.WithAdditionalDiagnostics<TNode>(node, diagnostics);
有人能指出这个语法规则是指什么吗?由于“base”看起来是一个普通的关键字,而不是上下文相关的,我认为这种情况应该有一个特定的语法规则,并且
base
不能简单地成为标识符。
base
用于引用从另一个类派生的类。通常在重写方法或构造函数时使用它来访问超类的状态或行为。 - Brian Driscollbase.
后必须跟标识符,而WithAdditionalDiagnostics<TNode>
不是标识符,并且似乎没有任何规则允许基类访问后面跟着类型参数列表,所以这个表达式在语法上如何有效?这就是我在阅读这个问题后思考的问题,也是我认为Ali在询问的问题。 - user743382