[英]Thread safe singleton property in one line
如何在一行中編寫以下代碼?
private static LockSDP instance;
private static readonly object _lock = new();
public static LockSDP GetInstance
{
get
{
if (instance is null) lock (_lock) instance ??= new();
return instance;
}
}
不是所有的東西都可以是一條線; 然而,這可能更容易; 您可以使用Lazy<T>
,但對於此處主要在延遲實例化之后的簡單static
,我可能會依賴 static 字段行為和嵌套的 class:
public static LockSDP GetInstance => LockProxy.Instance;
private static class LockProxy { public static readonly LockSDP Instance = new(); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.