问题标签 [static-classes]

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 投票
3 回答
20900 浏览

c# - 静态构造函数中的异常

我已经在 SO 周围寻找答案,到目前为止我能找到的最好的是here,但是它适用于具有静态构造函数的实例;我只是静态地使用这个类。

我的代码:

因此,如果静态构造函数在第一次调用时抛出异常,那么当我第二次尝试访问静态 SendMail() 方法时会发生什么?

PS:抱歉,如果您不喜欢 Stroustrup 版本的 K&R 牙套样式,但不要编辑我的帖子只是为了将牙套更改为您喜欢的 Allman 样式。谢谢。

0 投票
2 回答
124 浏览

c# - 静态参数化类的实例会发生什么?

假设我有这个类:

让我直截了当地说...DispatcherService<T>每种类型只有一个实例,并且只有在我调用它时。正确的?

只是询问内存问题。

0 投票
3 回答
1423 浏览

c# - 在每个派生类中具有基类静态成员的单独副本

我有以下类结构:

我想让 HomePresenter 和 DevicePresenter 拥有在 PresenterBase 中定义的 methodsList 静态成员的单独副本。

不幸的是,它们与上述实现共享相同的副本。

他们是替代方法吗,我可以为 HomePresenter 和 DevicePresenter 拥有单独的 methodsList 副本?我不愿意在派生类中定义方法列表,因为将来如果有人添加另一个派生类,他将不得不记住将方法列表添加到该类。

0 投票
4 回答
4198 浏览

design-patterns - 在遵循测试驱动开发范式时,我是否应该从不使用静态方法和类以及单例?

当您尝试在项目中实现单元测试时,我一直在阅读静态方法、静态类和单例是邪恶的。当遵循 TDD 范式时,我应该忘记它们曾经存在并且不再使用它们,还是有时可以使用它们?

0 投票
3 回答
4328 浏览

c# - 枚举和使用带常量的静态类有什么区别?

这两个项目之间的性能影响是什么?我最近在野外看到了静态类,但我不知道该怎么做。

0 投票
4 回答
29055 浏览

c# - C# 中的抽象类与静态类

可能重复:
抽象类和静态类有什么区别?

您好
我想知道 C# 中抽象类和静态类之间的所有区别
我什么时候使用什么以及为什么?

抽象类真的是一个我们不能创建它的实例的类吗?
谢谢

0 投票
3 回答
1828 浏览

.net - c# vb:我们真的需要 System.Lazy 吗?

我们真的需要System.Lazy吗?假设我的类库有 100 个静态类,每个静态类平均使用 100 个静态 System.Lazys = 10000 System.Lazys,当使用我的类库的程序启动时必须启动?

我的意思是我们通常不只使用 1 个类库,比如说我们导入 15 个 .dll,每个都有大量静态 System.Lazys .. 我很确定启动所有这些 System.Lazys 需要很长时间,更不用说它也会囤积大量内存(因为每个都有自己的 System.Func 让我们把它放在每个 50 字节 = 500kb 的内存中)

所以我想知道..最好以“旧”方式来做(比如使用布尔值来跟踪是否启动了某些东西)

0 投票
2 回答
207 浏览

javascript - Javascript 闭包和 *static* 类问题

我有一个包含回调函数数组的静态类,然后我有一些其他类用于与这个静态类交互......

这是静态类的一个简单示例:

然后这是与它交互的其他类的示例:

现在我遇到的问题是,当我调用任一类并告诉它 activateCallbacks() 时,这些类只在它们自己的范围内激活回调,即 SomeClassOne 会调用 someCallback() 但不会调用 someOtherCallback() ,反之亦然,现在我假设这与闭包的范围有关,但是我不确定如何获得我所追求的行为......

我尝试将静态类转换为常规类,然后通过构造函数将其传递给 2 个类,但仍然遇到同样的问题......

所以我的问题是如何让类引发所有回调

- 编辑 -

这是一个示例,显示与我在实际应用程序中遇到的相同问题,我已将所有脚本代码放入页面中以提供更清晰的示例:

http://www.grofit.co.uk/other/pubsub-test.html

这是一个简单的应用程序,有 2 个演示者和 2 个视图……一个视图涉及在页面顶部添加 2 个数字,第二个视图涉及获取总数并将其相乘并显示结果。

我使用的第 3 方库是PubSubJS,第一个演示者侦听一个事件,告诉它其中一个框已更改并重新汇总第一行。当顶部的乘法或总计发生变化时,第二个演示者会监听,然后重新计算底部的值。现在第一个演示者重新计算正确,而第二个演示者将在乘法框发生变化时正确重新计算,但是!当顶部的总数发生变化时,它不会重新计算,即使它应该收到通知......

无论如何,快速浏览一下页面上的源代码,看看我的意思......

0 投票
1 回答
1342 浏览

oop - 静态类是如何实例化的

我想知道静态类是如何实例化的。我的意思是根据 OOPS 概念,没有实例化它就不能使用任何类。但是我们仍然可以使用静态类而不实例化它,那么静态类何时以及如何被实例化。

已编辑--------

当我继承一个抽象类并创建一个子类的实例时,我也对构造函数调用感到困惑。任何人都可以向我解释一下。

提前致谢。

0 投票
8 回答
2882 浏览

c# - 为什么静态类的成员需要声明为静态的?为什么它不只是隐含的?

显然,静态类上不能有实例成员,因为该类永远不会被实例化。为什么我们需要将成员声明为静态的?