【发布时间】:2011-02-27 15:06:36
【问题描述】:
我正在开发 Windows 窗体应用程序。我需要实现单例设计模式。在同一个包中的两个类中实现单例时,它可以正常工作,但只需为该类中的两个类创建对象,就可以在不同的包中实现这两个类。我该如何实施?这是代码:
public class Singleton
{
private static Singleton instance;
B b=new B();
private Singleton() {}
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
public void a()
{
}
b.c();
}
public class B
{
SingleTon single=new SingleTon.Instance;
single.a()
public void c()
{
}
}
【问题讨论】:
-
“不工作”不足以解释你在那里做什么。
-
请注意您在 B 类中使用 SingleTon,而实际上它的名称是 Singleton。 c# 中的名称区分大小写。
-
显示的代码远未编译...
-
您可以使用
private static readonly Singleton instance = new Singleton();(静态字段在第一次使用时在.NET中初始化)这样您就不需要在属性的getter中检查instance是否为null。