![]() |
1
2
不,多个线程都将指向同一个静态类。
我不太明白你的问题。但一般来说,当需要全局数据访问时,您使用单例。使用具有静态成员的静态类也可以得到同样的结果。但是这使得代码更加难看,因为有太多的静态关键字,如果你想放弃全局访问策略而使用更面向对象的方法,那么你的生活就会变得困难。 然而,与静态类相比,Singleton是一种更受欢迎的方法。 |
![]() |
2
6
是的,静态类可以充当类似于单例的构造。它包含的所有静态成员将只存在一次- 但是每个AppDomain (请记住,一个进程可以有多个(独立的.NET AppDomains)。 |
![]() |
3
2
每个静态成员变量的一个实例在运行时创建,它们将在所有线程之间共享。 |
![]() |
4
1
编辑: 我应该补充一点,进程中的线程数和AppDomain数也是分开的。如果希望,单线程进程可以创建任意数量的AppDomain。此外,是否有额外的线程调用额外的AppDomain也取决于程序流。这可能会造成多个线程访问一个静态类的多个实例的情况,但除非您自己显式创建此场景,否则不会发生这种情况。
似乎不清楚你想问什么。静态类成员按概念表示单例。如果你问这是否是创建简单构造的好方法,答案可能是。这取决于你的需要。大多数人会认为,您应该只使用常规类定义,只创建一个实例。
|
![]() |
5
0
无法创建静态类的实例。。。 |
![]() |
6
0
Yes you can ,尽管这样做(甚至想这样做)有些不寻常。它需要一个单独的 AppDomain ,或使用 ThreadStaticAttribute
你可以用任何一种。单例允许您使用非静态类(如静态类),并在管理生命周期方面提供了一些额外的灵活性。 |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |