0
はのは、このコードスニペットを見てみましょう:メンバーは所有者クラスであってもプロパティによってのみアクセスできますか?
class A {
int m_x;
public int x {
get { return m_x; }
set { ... }
}
}
m_x
はプライベートですので、クラスAにアクセス可能だが、他のクラスは唯一の公共x
プロパティを介してアクセスすることができます。
私は、毎回xが変更されたときに呼び出されるメソッドを持っています。 (それはset { ... }
にあります)
私の問題は、クラスAにあります。m_x
の値を直接変更することができます。
- 「と呼ばれなければならない」メソッドが呼び出されていないこの方法です。
現在、このエラーの唯一の兆候は、接頭辞m_
です。
コンパイル時のチェックを行う方法はありますか?
しかし、プライベートフィールドの場合は、あなたのコントロールできる*あなたの*コードによってのみ変更することができますか? –
はい、しかし人間の誤差要因があります。私の疲れた瞬間の1つで、xの代わりにm_xを書くと、何時間もバグの原因を探す必要があります。 – Tudvari