15. 不必要なオブジェクト生成を避けること ===================================================================== - ヒープオブジェクト:いろんなことができる。スタックは、 - 参照型のオブジェクトをメソッド中でローカル変数として大量に使用s流ほど、アプリケーショのパフォーマンスに大きな影響を与えることになる。 - GCの実行条件はメモリの確保料と確保の頻度!GCにできるだけ仕事させないこと! :: protected override void OnPaint(PaintEventArgs e) { using (Font MyFont = new Font("Arial",10.0f){ e.Graphics.DrawString(DateTime.Now.ToString(), myFont, Brushes.Black,newPointF(0, 0)); } base.OnPaint(e); } Fontオブジェクトが毎回破棄されなければならなくなる。 その代わりメンバに昇格させると良い。 :: private readonly Font myFont = newFont("Arial", 10.0f); protected override void OnPaint(PaintEventArgs e) { e.Graphics.DrawString(DateTime.Now.ToString(), myFont, Brushes.Black,newPointF(0, 0)); base.OnPaint(e); } - Fontオブジェクトのように、IDisposableインターフェイスを実装するオブジェクトをローカル変数からメンバ変数に昇格させる場合は、暮らす自身にもIDisposableインタフェースを実装するべき。