class

メンバー

🚨 パブリックフィールドは原則利用しない

  • ref からの利用が前提となっている場合以外では、パブリックフィールドは利用せず、プロパティーを利用する。
  • シリアライズやデータベース保存のための Entity 以外では、パブリックフィールドは利用せず、プロパティーを利用する。
☀
public class SystemStatus
{
    public bool IsActive { get; private set; }
}
☔
public class SystemStatus
{
    public bool IsActive;
}

🚨 クラスの初期化はコンストラクタの引数でのみ行い、それ以外のメソッドで値を取らない。

🚨 クラスのコンストラクタで、初期化以上の処理を行わない。

⚠ 初期化に複雑な処理が必要な場合は、生成用の静的メソッドの作成を検討する。

🚨 クラスのメンバー関数の引数に this を入れることを前提とした引数を設けない。

  • そもそも設計がおかしい
☔
public class State
{
    public void Method(State state)
    {
        // do something.
    }
}

var state = new State();

state.Method(state);