13. Staticメンバを適切に初期化すること ===================================================================== - staticメンバ変数は型のインスタンスが1つ以上作成されるよりも前に初期化されるべき。(どういう意味?) newする前にstatic member=5みたいに設定する。 - CLRは、「型がアプリケーション空間(AppDomain)において初めてアクセスする」よりも前の時点で、その型のstatic コンストラクタを自動的に呼び出す。staticコンストラクタで例外が出た場合、型の初期化に失敗する(Appdomainで呼び出さる前に)。その派生型によっても問題が引き起こされる。AppDomainがアンロードされない限り型を初期化されない状態になる。 -  staticメンバの初期化はオブジェクト初期化ではなく、staticコンストラクタで行うべき。 staticメンバに対してオブジェクト初期化子を使用する場合、発生した例外をクラス自身で処理できない。 staticコンストラクタの場合はクラス内での例外処理が可能. :: static MySingleton(){ try { theOneAndOnly = new MySingleton(); } catch{ } }   - staticコンストラクタ:ほかのメソッドや変数、プロパティに対するアクセスよりも前に実行される。これによりsingleton patternの強制などができる。 - static変数初期化子(=new をメンバ定義時に行う)、staticコンストラクタはクラス内のstaticメンバを初期化する場合に最適な方法。