我偶然发现了以下两个“怪异”的属性:
Process.GetCurrentProcess().MainModule;
Assembly.GetExecutingAssembly().Location;
这些属性是进程和程序集类的一部分,但只能从这些类中的方法访问这些属性。
Private或Protected都不会将属性限制为仅可用于同一类中的方法。
您认为这些属性的保护级别是什么或者它的工作原理是什么?
答案 0 :(得分:3)
这就是私人所做的事情
http://msdn.microsoft.com/en-us/library/ms173121(v=vs.80).aspx
“最后,可以使用private关键字将类或结构成员声明为私有,表示只允许声明该成员的类或结构访问该成员。”
答案 1 :(得分:2)
GetExecutingAssembly是一个静态方法,用于返回流程类型,使用此类型,您可以访问公共属性,例如MainModule,如下所示:
new Process().MainModule
所以你混淆了一个类和该类的一个对象。