代码之家  ›  专栏  ›  技术社区  ›  grenade

静态类和效率

  •  0
  • grenade  · 技术社区  · 14 年前

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

    using System.Reflection;
    public static class ApplicationInformation
    {
        public static Assembly ExecutingAssembly
        {
            get { return executingAssembly ?? (executingAssembly = Assembly.GetExecutingAssembly()); }
        }
        private static Assembly executingAssembly;
    }
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   Jon Skeet    14 年前

    为什么每次调用都会实例化它?它是一个静态字段,和其他静态字段一样,它将“生存”到AppDomain的时间。

    我承认我会用 typeof(ApplicationInformation).Assembly 相反,这可能更便宜。。。但那是另一回事。

    推荐文章