静态类和效率

时间:2010-09-03 08:59:25

标签: c# static-classes

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

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

1 个答案:

答案 0 :(得分:2)

为什么每次通话都会实例化?它是一个静态字段,它会像AppDomain一样“生存”,就像任何其他静态字段一样。

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