OvertakingLegend/Assets/Script/Tool/Singleton/SingletonManager.cs

42 lines
900 B
C#
Raw Normal View History

2025-03-24 03:08:22 +00:00
public class SingletonManager<T> where T : class, new()
{
/// <summary>
/// ˽<>о<EFBFBD>̬ʵ<CCAC><CAB5>
/// </summary>
private static T instance;
/// <summary>
/// <20><><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
/// </summary>
private static readonly object mlock = new object();
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>ʵ<EFBFBD><CAB5>
/// </summary>
public static T Instance
{
get
{
lock (mlock)//ʹ<><CAB9><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>̰߳<DFB3>ȫ
{
if (instance == null)//<2F><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>Ϊ<EFBFBD>գ<EFBFBD><D5A3>򴴽<EFBFBD><F2B4B4BD><EFBFBD>ʵ<EFBFBD><CAB5>
{
instance = new T();
}
return instance;
}
}
}
/// <summary>
/// <20>ͷŵ<CDB7><C5B5><EFBFBD>
/// </summary>
public virtual void ReleaseInstance()
{
if (instance != null)
{
instance = null; // <20>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD>
}
}
}