类C#编程语言开发中带点标识符链的标准术语问询
类C#语言编译器术语规范解答
1. 命名空间中点分隔标识符链的术语
- 统称:这类点分隔的标识符链在C#、C++标准中称为限定名(Qualified Name),C#规范中更具体称为Qualified Identifier。
- 各部分名称:每个被
.分隔的单元是标识符(Identifier);在命名空间场景下,每个部分也可称为命名空间段(Namespace Segment)。 - 层级关系术语:
a是b的直接包含命名空间(Immediate Containing Namespace),也可称为b的直接前缀(Immediate Prefix);a.b是c的包含命名空间链(Containing Namespace Chain),或c的限定前缀(Qualified Prefix)。
2. 表达式场景下的术语适用性
这类术语完全适用于表达式场景,表达式中的.操作属于成员访问(Member Access),对应关系的标准术语:
somevar是somefunction(...)的接收者(Receiver)(C#规范中称为Instance Expression,即实例成员访问的实例表达式);2是ToString()的接收者(值类型实例的成员访问,本质是装箱后的实例表达式);someArrayTypedProperty[4]是someOtherProperty的接收者,其中someArrayTypedProperty[4]本身属于元素访问(Element Access)表达式,作为后续成员访问的前缀部分。
整个表达式中的点分隔链是限定名在表达式语境下的扩展,C#中称为Member Access Expression Chain,核心术语与命名空间场景一致。
3. BNF规范中的因子类型命名
在C#官方BNF规范中,这类包含标识符链、成员访问、元素访问的基础表达式单元,属于**Primary Expression(主表达式)**的范畴。具体来说,Primary Expression下包含QualifiedIdentifier、MemberAccess、ElementAccess等子规则,这些规则组合形成的链是表达式解析中最基础的因子(factor)类型。
内容的提问来源于stack exchange,提问作者Tim Veldhuizen
相关产品推荐
相关产品推荐

