【问题标题】:How do I avoid re-initializing a class that never changes?如何避免重新初始化一个永不改变的类?
【发布时间】:2015-09-20 05:16:31
【问题描述】:

我有一个类只需要在我的代码中初始化一次,但它所在的函数被多次调用,并且该类被一次又一次地初始化。这个类只需要调用一次,因为传递给它的数据永远不会改变,让我的代码多次重新初始化它是一种浪费。我想有一种方法让我的代码检查这个类是否已经初始化并且可以获取已经生成的所需信息。我的第一个想法是以单例模式的方式进行设计,但我认为这没有必要,因为我的代码中的其他任何地方都不需要这个类。做这种事情的简单方法是什么?

【问题讨论】:

  • 静态类怎么样

标签: c# get initialization


【解决方案1】:

使其成为静态的。类将在首次使用时初始化...

【讨论】:

  • 如果我将类设为静态,我是否也必须将其中的函数和变量设为静态?
  • user3344076,当然。一切都必须是静态的。
  • 感谢您的帮助。我对此还是有点陌生​​,所以谢谢你和我在一起。
【解决方案2】:

static class 是一种方法。

public static class MyClass
{
   public static bool IsInited { get; private set; }
   public static void Init(...)
   {
      ...
      IsInited = true;
   }
}

如果 Init 没有参数,例如可以自己设置所有属性,然后您可以使用static constructor 而不是Init。基本上,构造函数将在其他代码第一次访问属性时被调用。

public static class MyClass
{
   public static bool IsUnix { get; private set; }
   static MyClass()
   {
      IsUnix = Environment.NewLine == '\n';
   }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 2010-12-20
    • 2017-05-21
    • 2015-04-15
    • 1970-01-01
    • 2021-10-28
    相关资源
    最近更新 更多