2011-11-25 172 views
0

我在下面的两个“奇怪的”寻找性能跌跌撞撞:仅可从同一班级的方法访问的班级成员 - 如何?

Process.GetCurrentProcess().MainModule; 

Assembly.GetExecutingAssembly().Location; 

这些属性的类过程大会的一部分,但性质与类中的方法只能访问。

Private或Protected都不会将属性限制为只能从同一个类中的方法使用。

你称这些属性的保护级别是什么或者它如何工作?

+0

你为什么说'私人'不完成这个?根据你的描述,这就是*“私人”所做的。 –

+0

Process.MainModule和Assembly.Location都是公共的,并且可以被所有类中的方法访问。 – Henrik

+2

对不起,没有理解你的问题,你的意思是“为什么我们不能写Process.MainModule; Assembly.Location;而是?” - 如果是这样,这是因为MainModule和Location属性不是静态的/ –

回答

2

GetExecutingAssembly是静态方法返回一个过程类型,对于这种类型的,你可以访问公共属性,如MainModule这样的:

new Process().MainModule 

所以你混淆类的对象那个班。

+0

+1 @RedHat,这就是我对原始问题的评论 –