0
在我的應用程序中,我需要幾個單例類。他們每個人都有一些其他單身類的領域使用它們。下面我就重建簡單的例子問題:包含彼此字段的單例類空引用異常
public sealed class A
{
private B b = B.Instance;
private static readonly A instance = new A();
public static A Instance { get { return instance; } }
static A() { }
private A() { }
public void Do()
{
b.ToString();
}
}
public sealed class B
{
A a = A.Instance;
private static readonly B instance = new B();
public static B Instance { get { return instance; } }
static B() { }
private B() { }
public void Do()
{
a.ToString();
}
}
class Program
{
static B b = B.Instance;
static A a = A.Instance;
static void Main(string[] args)
{
b.Do();
a.Do();
}
}
空引用異常來,因爲字段爲空。那麼如何初始化和使用這種相互關聯的單例類呢?
爲什麼要嘗試這樣做?這種交叉依賴性通常是設計不好的標誌。 – Thomas