问题标签 [static-constructor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
170 浏览

c++ - 使用受保护的构造函数在 c++ 中进行对象实例化

我有这个 c++ 类,我想初始化这种类型的对象:

为了创建一个实例,我这样做了:

但我收到了这些警告和错误:

如何正确实例化这个对象?

0 投票
1 回答
434 浏览

c# - 强制调用静态构造函数

我有一个中央服务(在一个非常大的在线系统内),其中课程将自己注册为“foo”,提供者。当系统需要获取一些 foo 时,会调用所有已注册的提供程序。我的问题是使类注册本身的自然位置是在静态构造函数中;但是只有在调用该类的一部分时才会调用静态构造函数。

但这可能在一段时间内不会发生——这些类提供其他服务;它们可能会被大量或少量使用。

我可以以某种方式强制这些静态结构吗?

有人能想出更好的方法吗?(这些不是动态加载的插件——在这种情况下,作为加载的一部分,我会检查它们是否有像 IFooProvider 这样的接口)。

编辑:好的 - 我无法控制何时调用构造函数。我应该改用什么?我的中央服务不直接了解这些提供商。所以调用'init'函数没有打开。我正在尝试将 pub 子模型想象为事件总线,但这不一样。“订阅者”需要在需要某些东西时调用“发布者”(而不是在发生某些事情时被调用)

0 投票
1 回答
1267 浏览

c# - 隐式初始化静态类

是否可以在应用程序“自动”启动时初始化静态类?自动我的意思是不需要引用属性。

我希望能够这样做的原因是我想在启动时自动为应用程序设置主题。

这是一个简短的片段:

我知道我可以(目前就是这样)使用原始的 getter/setter 并调用

在 App 的构造函数中(它是 WPF 项目),它会完成这项工作,但是,至少从我的角度来看(如果我弄错了,请纠正我)如果没有应用默认主题会更有意义需要明确说明。

0 投票
2 回答
608 浏览

c# - 使用设计器时会调用静态构造函数吗?

我想在运行时和设计时运行一些注册代码。对我来说,最好的方法似乎是使用静态构造函数,但它似乎没有运行。

有没有办法让静态构造函数在设计时运行?如果没有,是否有一种可接受的模式来做这种事情?

0 投票
2 回答
1240 浏览

c# - CLR 如何处理静态类?

谁能解释 CLR 如何处理静态类?CLR 是否创建一个单例实例来在内部处理静态类?如果没有,为什么我们在 C# 中有一个静态构造函数?(根据我的理解,我们只使用构造函数来实例化类)

0 投票
4 回答
166 浏览

c# - 这两个构造函数都做同样的事情吗?

这两个代码块做同样的事情吗?

他们做同样的事情吗?我认同。

0 投票
1 回答
541 浏览

c# - 单例设计模式中的静态构造函数

在 MSDN 上,我发现了两种创建单例类的方法:

我的问题是:我们可以只使用一个静态构造函数,在第一次使用之前为我们生成这个对象吗?

0 投票
2 回答
106 浏览

java - 编写加法和减法的静态版本时遇到麻烦(这是在java中)

我需要帮助编写加法和减法的静态版本。我试过这样做,但我不确定这是否是正确的方法,而且我的 equals 方法也不起作用。当我编译我的 equals 方法时,它总是打印错误。

0 投票
1 回答
89 浏览

c# - 静态字段初始化说明及要求

在看了这么多与此相关的复杂问题之后,我想询问以下具有静态字段初始化的代码的解释。我想知道的另一件事是静态字段初始化的要求。在什么情况下会有帮助??

输出:

初始化 B

初始化 A

1 1

当不存在静态构造函数时,输出可能会有所不同。我无法理解其背后的原理。静态字段初始化给这个片段带来了什么不同?有人可以帮忙吗。我是 c# 的新手。

0 投票
4 回答
5263 浏览

c# - 方法调用中的静态变量为空,但在程序中初始化

我在这里有点头疼,我想知道是否有人知道答案。

设置基本上是这样的:

让我大吃一惊的问题是,在 IXmlSerializable.ReadXml() 方法中,StaticClass.StaticVariable 为空,即使在设置变量后立即调用它。

值得注意的是,没有命中断点,并且 Debugger.Launch() 在问题发生的确切位置被忽略。

神秘的是,我通过引发异常确定 AppDomain.CurrentDomain.FriendlyName 属性对于填充静态变量的位置与 null 是相同的!

为什么静态变量超出范围?!?这是怎么回事?!?如何共享我的变量?

编辑:

根据响应中的建议,我添加了一个静态构造函数,并让它执行 Debug.WriteLine。我注意到它被调用了两次,即使所有代码似乎都在同一个 AppDomain 中运行。这是我在输出窗口中看到的内容,我希望这将是一个有用的线索:

静态构造函数调用于:2015-01-26T13:18:03.2852782-07:00

...加载 'C:...\GAC_MSIL\System.Numerics\v4.0_4.0.0.0__b77a5c561934e089\System.Numerics.dll'...

...加载“Microsoft.GeneratedCode”...

...加载 'C:...\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll'....

...加载 'C:\USERS...\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\12.0EXP\EXTENSIONS...SharePointAdapter.dll'。已加载符号。

...加载“Microsoft.GeneratedCode”。

静态构造函数调用于:2015-01-26T13:18:03.5196524-07:00

附加细节:

这是实际代码,因为一些评论者认为它可能会有所帮助: