7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Effective C#のもくじ

Posted at

Chapter 1 C#言語

  • アクセス可能なデータメンバの代わりに常にプロパティを使用すること
  • constよりもreadonlyを使用する
  • キャスト時にはisあるいはas演算子を使用すること
  • #ifの代わりにConditional属性を使用する
  • ToString()を常に実装すること
  • 値型と参照型の違い
  • 値型は不変かつアトミックにすること
  • 値型における0を正常な状態とすること
  • ReferenceEquals()とstaticメソッドのEquals()、インスタンスメソッドのEquals()、等号演算子==の関係を把握する
  • GetHashCode()の罠に注意する
  • foreachループを使用すること

Chaptert 2 .NETにおけるリソース管理

  • 割り当て演算子よりも変数初期化子を使用すること
  • staticメンバはstaticコンストラクタで初期化する
  • コンストラクタの連鎖を活用する
  • usingおよびtry...finallyを使用してリソースの後処理を行う
  • ゴミの量を最小限に抑えること
  • ボックス化、ボックス化解除を最小限に抑える
  • Disposeパターンの標準的な実装

Chapter 3 C#によるソフトウェアデザインの表現

  • 継承よりもインターフェイスの定義および実装を行うこと
  • インターフェイスを実装することと仮想関数をオーバーライドすることの違い
  • デリゲートを使用してコールバックを実現する
  • イベントにより発信インターフェイスを定義する
  • クラス内オブジェクトの参照を返さないようにすること
  • 命令形プログラミングよりも宣言型プログラミングを選択する
  • 型はできるだけシリアル化可能とすること
  • IComparableとIComparerを実装して順序関係をサポートする
  • ICloneableを使用しないこと
  • 変換演算子は使用しないこと
  • 親クラスの変更による指示がない限りnew修飾子は使用しないこと

Chapter 4 バイナリコンポーネントを作成する

  • CLS互換性のあるアセンブリを作成すること
  • 機能を最小限かつシンプルにすること
  • より小さく凝集したアセンブリを作成すること
  • 型の可視性を制限すること
  • 粒度の粗いWeb APIを作成する

Chapter 5 フレームワークを活用する

  • イベントハンドラよりもオーバーライドを優先すること
  • .NETランタイムの診断機能を利用する
  • 標準の設定メカニズムを使用すること
  • データベインドを活用およびサポートすること
  • .NETの検証機能を使用すること
  • ニーズに一致したコレクションを用意すること
  • 独自のデータ構造よりもDataSetを利用する
  • リフレクションを単純化するために属性を使用する
  • リフレクションを使用しすぎないこと
  • 完全にアプリケーション固有の例外クラスを作成する

Chapter 6 その他

  • 例外を強く保証すること
  • 相互運用を最小限にすること
  • 安全なコードを選ぶ
  • ツールとリソースについて選ぶ
  • C# 2.0への準備
  • ECMA標準について学ぶ
7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?