当我将一个类声明为内部时,为什么IL将其显示为私有?

Jay*_*cee 5 .net c# cil

如果我将一个类声明为内部类,为什么IL将其显示为私有?

internal class Thing

.class private auto ansi beforefieldinit Thing.Thing
       extends [mscorlib]System.Object
Run Code Online (Sandbox Code Playgroud)

Fré*_*idi 11

从IL的角度来看,private意味着对程序集私有的,即internal在C#中.

在C#中,无法将类型标记为private嵌套.IL对这类类型的等效可访问性是nested private.

所以我们有:

  • C#的internal- > IL的private(到程序集)
  • C#的private- > IL的nested private(到封闭式)

  • 谢谢,我还注意到嵌套的内部类被标记为:嵌套程序集.内部方法:装配. (2认同)