【问题标题】:How to make constructors to be called only once even though the class is called multiple times?即使多次调用类,如何使构造函数只被调用一次?
【发布时间】:2011-05-18 17:53:28
【问题描述】:

默认情况下,无论何时调用类都会调用构造函数,如何在不使用静态构造函数的情况下只调用一次?

【问题讨论】:

  • 默认情况下,每当类INSTANTIATED时都会调用构造函数

标签: c# constructor


【解决方案1】:

每个类只调用一次静态构造函数。每次创建类的实例时都会调用实例构造函数。
对我来说,不清楚为什么不能使用静态构造函数。

【讨论】:

  • @Daniel :因为静态构造函数不允许我访问在其中初始化的变量。
  • @Srikanth:你想达到什么目标?静态构造函数不能访问实例变量,因为它们特定于类的每个实例。很明显,它们不能从静态构造函数中访问。你的要求没有意义。请描述用例以及您要实现的目标。
  • @Daniel : stackoverflow.com/questions/6040708/… .. 请看看这个 .. 需要你的帮助
  • 我不明白这与这个问题有什么关系
  • 如果你在那个 Q 中看到我正在尝试迭代地写入一个 excel 表,但是应该使用同一个 excel 表一次又一次地写入,这是我无法实现的。如图所示,如果我使用 b 类的静态构造函数,write 方法不起作用(抛出错误);如果我创建构造函数 PUBLIC ,每次打开不同的 excel 表时,这不应该发生......
【解决方案2】:

使用单例模式。 看一眼 http://www.yoda.arachsys.com/csharp/singleton.html

【讨论】:

    猜你喜欢
    • 2013-12-11
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    相关资源
    最近更新 更多