C# 静态单例对象及其作用域

C# 静态单例对象及其作用域,c#,C#,假设我已经声明了一个singletonSingle,我想初始化S,以便在这样的类中使用 public class A { public Single s=Single.Instance; // methods } 我有多个类,如A(B、C、D等)。还包含行public Single s=Single.Instance 这是一个糟糕的设计吗?存在多个单例。 很抱歉提出一个基本问题,但是初始化s的时间以及它的有效期。使用SingletonClass.Instance作为属性来获取静态 si

假设我已经声明了一个singleton
Single
,我想初始化
S
,以便在这样的类中使用

public class A
{
  public Single s=Single.Instance;
  // methods
}
我有多个类,如A(B、C、D等)。还包含行
public Single s=Single.Instance

这是一个糟糕的设计吗?存在多个单例。 很抱歉提出一个基本问题,但是初始化
s
的时间以及它的有效期。

使用SingletonClass.Instance作为属性来获取静态 singletor类的对象,完成此操作后,它们将仅为一个对象(而不是多个) 因为Singleton类的实例属性将确保


只要未释放singleton对象,它在初始化时将可用于任何类

,具体取决于初始化方式。。你还没有表现出来<代码>静态对象保证在对其进行任何封装类型的访问之前进行初始化。。这是什么时候还没有确定
static
对象在AppDomain的生命周期内一直存在。如果Single.Instance正确地实现为singleton,则您只有singleton的1个实例,但对该实例有多个引用。这本身就是一个不错的设计。