😺
遅延初期化されるプロパティの書き方
Semantic Kernel のコードを見ていて、へ~って思ったのでメモです。
??
演算子と Interlocked.CompareExchange
を使って遅延初期化されるプロパティの書き方です。
1 つのパターンとして覚えておくためのメモです。
class MyClass
{
private List<string>? _lazyInitializedList;
public List<string> LazyInitializedList =>
_lazyInitializedList ??
Interlocked.CompareExchange(ref _lazyInitializedList, [], null) ??
_lazyInitializedList;
}
Discussion