是否有任何C#构造仅顶级?

时间:2019-03-28 11:53:53

标签: c#

某些C#构造不能在顶层使用。例如,不能在顶级定义方法。他们必须在一个班级内。

是否存在只能在顶级使用 的语言构造,而 不能嵌套在其他构造中?

1 个答案:

答案 0 :(得分:2)

我只能想到全局属性,搜索形式语法here似乎可以证实这一点。

  

编译单元的 global_attributes Attributes)允许指定目标程序集和模块的属性。

compilation_unit中可能包含的所有其他内容也可以包含在namespace_body中:

compilation_unit
    : extern_alias_directive* using_directive* global_attributes? namespace_member_declaration*
    ;

namespace_declaration
    : 'namespace' qualified_identifier namespace_body ';'?
    ;

namespace_body
    : '{' extern_alias_directive* using_directive* namespace_member_declaration* '}'
    ;

namespace_member_declaration
    : namespace_declaration
    | type_declaration
    ;

(页面中语法的其他部分和所有叙述都已删除)