新しいC#6では、これらのきれいな自動プロパティ初期化子が得られました。私は、これまで以上に簡潔なシングルトンを作るために、これらの利点を活用することもできると考えました。明らかにsomeone elseもそのアイデアを得ました。自動プロパティ初期化子シングルトン実装
public sealed class Singleton
{
public static Singleton Instance { get; } = new Singleton();
private Singleton() { /* some initialization code */ }
}
私の質問は以下のとおりです。
- それがどのようにスレッドセーフ?
- インスタンスが実際に作成されるか、どれほど怠惰ですか? (優先度は高くはありませんが、今後の参考になると良いでしょう)
- 全体的に良いアイデアですか?
(それはthis questionに似て見えるかもしれませんが、それはありません)