について学ぶ:それは(私は明らかに私のクラス全体の変数BarNameを使用し、現在のプロパティ値が設定されている場合、ロジックを追加する必要が私は、自動実装properiesを使用して単純なクラス持っ自動実装プロパティ
Public Class foo
{
public foo() { }
public string BarName {get; set;}
}
をすべて大文字でなければなりません)。これは、BarNameのプライベート変数を作成する必要があることを意味しますか? _BarNameに変更し、クラス全体で使用されている現在のBarName変数を_BarNameに変更しますか?
Public Class foo
{
public foo() {}
private string _BarName = "";
public string BarName
{
get {return _BarName;}
set {_BarName = Value.ToString().ToUpper();}
}
}
私は、自動実装プロパティを使用しての意味を理解し、私は何かを変更する必要があるときに/もし何それが道をすることを必要とすることを確認しようとしています。私は上記のように、リファクタリングがbreakingの変更ではないと仮定しています。プロパティは基本的に同じままです。クラスの中でちょっとした作業をして、それをそのまま維持し、必要なロジックを追加するだけでした。
もっと意味があるかもしれないもう1つの例は、setterまたはgetterを使用するときに何らかのメソッドを呼び出す必要があるということです。それ以上の値を変更する。
これは、プロパティを設定するための行とコード行との間に公正な関係があるようです。
ああ、私は自分で変数にアクセスするためにプロパティを使用しますか?それが読んでいるだけの場合、本当にそれを行うことはできません。私が意味するコードは、変更が必要な/ inside/classです。 – Brettski
あなたの例では、それは読み取り専用ではありません。しかし、あなたがそれを持ち出すようになったので、私の応答は、あなたがプロパティを公に読めるようにし、私的に設定できることです{get;プライベートセット; }パターンを作成し、クラス内から書き込むことができます。 – hurst