gpt4 book ai didi

c# - 什么是 C# 中好的线程安全单例通用模板模式

转载 作者:IT王子 更新时间:2023-10-29 04:09:33 35 4
gpt4 key购买 nike

我有以下 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> 
{
}

相关:

An obvious singleton implementation for .NET?

最佳答案

根据 Jon Skeet 在 Implementing the Singleton Pattern in C# 中的说法您发布的代码实际上被认为是错误代码,因为根据 ECMA CLI 标准检查时它似乎已损坏。

还要注意:每次用新类型的 T 实例化对象时,它都会成为另一个实例;它不会反射(reflect)在您的原始单例中。

关于c# - 什么是 C# 中好的线程安全单例通用模板模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/100081/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com