【发布时间】:2011-05-11 12:40:45
【问题描述】:
我对单例类有些困惑,以下是我的一些观点:
- 单例类可以有静态方法吗?如果可以,我们如何调用这些方法?
- 静态类和单例类的主要区别是什么?
我已经按如下方式创建了我的单例类:
public class Singleton
{
private static Singleton _instance = null;
private static object chekLock = new object();
private Singleton()
{}
public static Singleton Instance
{
get
{
lock (chekLock)
{
if (_instance == null)
_instance = new Singleton();
return _instance;
}
}
}
public static void StaticAddMethod()
{
Console.WriteLine("Add Method");
}
public void AddMethod()
{
Console.WriteLine("Add Method");
}
}
在上面的类结构中,我创建了两个方法,一个是静态的,第二个是非静态的,当我尝试访问静态方法时,它会给我编译时错误。
如何使用单例类的静态方法?
【问题讨论】:
-
列出您尝试通过使用单例实现的目标可能会有所帮助,因为该类不是单例,它只是一个包含静态方法的类。
-
您如何尝试访问静态方法?你应该使用 Singleton.StaticAddMethod() 你得到什么编译错误?
-
如果您正在运行 .NET 4,我会考虑将
Lazy<T>对象与您的 Singleton 一起使用。真的很好很干净:geekswithblogs.net/BlackRabbitCoder/archive/2010/05/19/…