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);