中间语言代码中顶级 class 的访问说明符是什么?
what is the access specifier of the top level class in the intermediate language code?
c# 中顶层 类 的默认访问说明符是内部的
但是当我观察 IL 代码时,它如下
.class private auto ansi beforefieldinit n.A
extends [System.Runtime]System.Object
{
} // end of class n.A
为什么编译器在上述 IL 代码中使用 private 关键字而不是 assembly 关键字?
IL 的定义与 C# 不同;在 IL 中有 visibility 和 accessibility。详细信息在 ECMA 335 的 II.10.1 和 table II.10.1.1 中。顶级类型的唯一两个有效选项是 public
和 private
- 其他一切都相关到 nested *
,即类型中的类型。
基本上,它是这样做的 因为规范要求它:
A type that is not nested inside another type shall have exactly one visibility (private or public) and shall not have an accessiblity.
顶级类型没有 assembly
或 family
这样的东西。
c# 中顶层 类 的默认访问说明符是内部的 但是当我观察 IL 代码时,它如下
.class private auto ansi beforefieldinit n.A
extends [System.Runtime]System.Object
{
} // end of class n.A
为什么编译器在上述 IL 代码中使用 private 关键字而不是 assembly 关键字?
IL 的定义与 C# 不同;在 IL 中有 visibility 和 accessibility。详细信息在 ECMA 335 的 II.10.1 和 table II.10.1.1 中。顶级类型的唯一两个有效选项是 public
和 private
- 其他一切都相关到 nested *
,即类型中的类型。
基本上,它是这样做的 因为规范要求它:
A type that is not nested inside another type shall have exactly one visibility (private or public) and shall not have an accessiblity.
顶级类型没有 assembly
或 family
这样的东西。