2012-03-10 2 views

答えて

15

C#シングルトン(もLazy<>をカバー)で最高のソースはジョンスキートに属している:それは持っている必要がありますので

  • は、ユニークなリソースを表す:http://csharpindepth.com/Articles/General/Singleton.aspx

    は、あなたがそのクラスを持っているしたいとします一意のインスタンス

  • インスタンスには高価な初期化が必要です。
  • 初期化パラメータは実行時にのみ使用できます。
  • 上記のほとんどの場合は、すべての後にオブジェクトを使用することはありません場合は、同時にシングルトンオブジェクトを初期化しようとすることができ、複数のスレッド、
  • など

がある

  • があります条件が真である場合は、クラスがSingletonであり、一意のインスタンスが遅延初期化されている必要があります(必要になるまで初期化されません)。C#4.0以降をターゲットにする場合、Lazy<>を使用すると、

  • 1

    ドキュメントは、大きなまたは リソース集約オブジェクトの作成またはリソース集約 タスクの実行、特にそのような作成を延期する(Tの)遅延のインスタンスを使用し

    を言いますプログラムの実行中に実行されない可能性があります( )。

    したがって、必要な場合にのみシングルトンインスタンスを作成します。

    レイジーインスタンシエーションは、一般に、アプリケーションが組み込みのときにすべての作成コストが支払われないように便利です。

    関連する問題