我有以下 C# 单例模式,有什么方法可以改进它吗?
public class Singleton<T> where T : class, new()
{
private static object _syncobj = new object();
private static volatile T _instance = null;
public static T Instance
{
get
{
if (_instance == null)
{
lock (_syncobj)
{
if (_instance == null)
{
_instance = new T();
}
}
}
return _instance;
}
}
public Singleton()
{ }
}
首选用法示例:
class Foo : Singleton<Foo>
{
}
Related:
.NET 的明显单例实现?
根据乔恩·斯基特的说法在 C# 中实现单例模式您发布的代码实际上被视为错误代码,因为根据 ECMA CLI 标准检查时它似乎已损坏。
还要注意:每次用新类型的 T 实例化对象时,它都会变成另一个实例;它不会反映在您原来的单例中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)