C#の勉強 オブジェクト指向(カプセル化、static、Dispose)について分かったことをまとめました

C#の勉強 オブジェクト指向(カプセル化、static、Dispose)について分かったことをまとめました

備忘録

  • public:どこからでも参照可
  • internal:同一アセンブリのみ
  • protected:クラス内部とサブクラスのみアクセスすることが可能
  • private:クラス内部のみアクセスすることが可
    • フィールドの場合はprivate
      • 自分のクラスのフィールドのチェックは自分のクラスで行うことで処理が重複せずに、使いやすいクラスになる
      • フィールドは同じクラスのメソッドのみが使われている状態が理想的
      • (例:顧客クラスの場合、顧客に対するデータを持っていて、そのデータの変数とかをチェック)
  • プロパティ:フィールドの値を設定したり取得する。単純に値を取得、セットする
    • 自動実装プロパティ:値チェックのロジックがない場合は下記のように書く
public int count {get; set:}
  • Dispose:リソースの解放 (int, stringなど)
    • メモリ空間を確保
    • DBを使っていたりしてアプリの外部のものを使っている
    • usingは勝手にDisposeされる
    • クラス全体で使うときはIDisposableを実装
    • クラス自体はDispose対象
  • static:アプリにただ一つ定義したいときに使う (例:DBの接続先のように共通で使えるようにしたい)
    • staticのメソッドはインスタンスを作らなくても直接使うことが可能
    • アプリで一個だけ定義する
      • (例:Counterクラスのアプリに_countが定義されてもどこから呼ばれても_countしかない)
    • クラスや変数を定義する時にstaticをつける
    • newすることができないのでクラス単位で生成される。インスタンス生成はしない
    • 静的メソッドの中で使えるのは静的メンバーのみ。
    • クラス名を使ってアクセスを行う
    • クラス.メソッド名のように使う