2010-09-03 48 views
0

我想了解静态类的效率,因为我认为我在这方面的基本思想可能有缺陷。我经常编写如下的代码,假设昂贵的反射调用将不太经常发生,因为私有变量将保存访问者的信息。我非常确定这是非静态类和实例属性的良好习惯,但是在静态类中使用此构造还是有什么好处,或者是否需要在每次调用公共访问器时实例化私有字段?静态类和效率

using System.Reflection; 
public static class ApplicationInformation 
{ 
    public static Assembly ExecutingAssembly 
    { 
     get { return executingAssembly ?? (executingAssembly = Assembly.GetExecutingAssembly()); } 
    } 
    private static Assembly executingAssembly; 
} 

回答

2

为什么每次调用都会被实例化?这是一个静态字段,只要AppDomain一样,它就会“活着”,就像任何其他静态字段一样。

不可否认,我会用typeof(ApplicationInformation).Assembly代替,这可能更便宜...但这是另一回事。

+0

谢谢,这就是我需要知道的。 – grenade 2010-09-03 09:08:25