返回信息流简单名称:simple-name的求值和分类如下:
如果simple-name出现在一个block内,并且该block包含一个具有该给定名称的局部变量或参量,那么这个simple-name指的就是这个局部变量或参量,其类别就是变量。
否则,对于每个类型T,从最直接的包含它的类,结构体或枚举声明开始,并继续到每个包含它的外层类或结构体声明(如果有的话),如果T中关于该simple-name的成员查找产生了匹配:
如果T是最直接的包含它的类或结构体类型,并且查找到了一个以上的方法,那么结果就是this带有相关实例表达式的方法组。
如果T是最直接的包含它的类或结构体类型,查找到了一个实例成员,引用发生在构造函数或实例方法或实例访问函数的block之内,那么结果就正是this.E的成员访问,其中E就是这个simple-name.
否则,结果就正是T.E的成员访问,其中E就是这个simple-name。这种情况下,如果simple-name指的就是实例成员的话,就会发生错误。
否则,从出现simple-name的名称空间声明开始(如果有的话),继续到每个包含们的名称空间(如果有的话),到全局名称空间结束,执行以下步骤直到定位到某一实体为止。
如果该名称空间包含一个具有该给定的名称空间成员,那么simple-name指的就是这个成员,根据这个成员,可以确定simple-name是一个名称空间还是一个类型。
否则,如果该名称空间声明包含一个与该给定名称相关的using-alias-directive,们引入了一个名称空间或类型,那么simple-name指的就是这个名称空间或类型。
否则,如果该名称空间声明的using-alias-directive引入的名称空间只包含一个具有该给定名称的类型,那么simple-name指的就是这个类型。
否则,如果该名称空间声明的using-alias-directive引入的名称空间包含一个以上具有该给定名称的类型,那么simple-name就是不明确的,就会发生错误。
括号表达式:
Parenthesized-expression由包含在括号中的expression组成。Parenthesized-expression的求值就是括号内的expression值,如果括号内的expression表示的是名称空间,类型或方法组的话,就会发生错误,否则,Parenthesized-expression的结果就是所包含的expression的求值结果。
这是一条镜像帖。来源:北邮人论坛 / dot-net / #2420同步于 2010/10/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖
C# 求教这段话的理解。
ppoo
2010/10/23镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
【 在 ahomer 的大作中提到: 】
: 这来自那本书??
: 还是看英文版的吧
: --
: ...................
规范里面的,感觉还晦涩难懂,感觉从来没见过这个东西
机器翻译的吧
【 在 ppoo 的大作中提到: 】
: : 这来自那本书??
: : 还是看英文版的吧
: : --
: ...................