CShar 自戒

Last-modified: 2011-10-24 (月) 20:14:38

特に大規模なアプリを作成する際の注意点。守るべきこと。つまり自戒。

フレームワーク

  • 各クラスが提供するイベントに、ハンドラを登録する場合、解除まできっちり行おう。ハンドラによってGCが阻害される恐れがある。これも一種のメモリリークと言える。
  • 独自のイベントを作成する場合、EventArgsを継承したクラスを作成し、EventHandler<TEventArgs>を利用しよう。独自のdelegate型をむやみに作ると実行時のパフォーマンスに影響する。

構文

  • 「ref」は、その値を参照して、書き換えるときのみに使用しよう。
  • 「ref」を使っているのに値を参照しない場合は、「out」を使おう。
  • 「using ()」構文を積極的に使おう。usingによって明示的なDispose()を実現しよう。

例外デザイン

  • 例外を出さなくて済ませられるなら、例外の出ないデザインが好ましい。
  • 例外が発生したとしても、できるだけデータを破壊しないように、複製したデータに対して処理しよう。これは、データベースで言えば、アトミック原則と同じだ。