明天我要参加一场面试,正在复习一些.NET相关的内容。
MSDN将Internal
关键字定义为:
仅在同一程序集内的文件中才能访问内部类型或成员
但我似乎找不到程序集的定义。是指同一命名空间内的所有内容,还是同一项目内的所有内容,还是其他什么?
一个Assembly是已编译为.DLL或.EXE的项目。对于Visual Studio而言,任何类库项目、Windows窗体应用程序或WPF应用程序都将编译成一个Assembly。
命名空间
,我们有:
命名空间关键字用于声明一个包含一组相关对象的作用域。您可以使用命名空间来组织代码元素并创建全局唯一类型。
正如MSDN所述。
从上面可以清楚地看出,您可以在程序集内声明任意多个命名空间。
一个很好的免费工具,您可以用它来查看程序集中的内容是IL Disassembler。
汇编语言是一个物理的容器文件(DLL或EXE)。
虽然有些不寻常,但命名空间可以跨越多个汇编语言。
内部类不一定对同一命名空间内所有类可见,因为一个命名空间可以跨越多个程序集。程序集是编译好的文件(DLL或EXE)。
通常情况下指的是在同一个项目中,但也有将多个项目的输出组合成一个程序集的方法(通过ILMERGE)。
.exe
文件)或共享库(.dll
文件),并且可以包含多个命名空间。