我对单例类有一些困惑,以下是我的一些观点:
- 单例类可以有静态方法吗?如果是的话我们如何调用该方法?
- 静态类和单例类之间的主要区别是什么?
我创建了我的单例类,如下所示:
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();
vs
Singleton.Instance.AddMethod();
另请注意,有更简单的方法来实现单例,可以通过更少的锁定等实现相同的效果。
关于单例和静态的区别;单例可以实现一个接口,允许您将其传递到现有代码中。您还可以(正如您所做的那样)推迟单例的构造(但仍然允许访问不涉及单例实例的静态方法)。但是,是的:静态和单例之间有很多交叉。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)