フィールドを外部に公開するのではなく、クラスフィールドのgetterメソッドとsetterメソッド(C#のプロパティ)を作成して、カプセル化を保護する必要があるとよく言われています。パブリックフィールドと自動プロパティ
しかし、フィールドが値を保持するためだけに存在し、取得または設定するための計算を必要としない場合が何度もあります。これらのために、我々はすべて、この数だろう:まあ、私は告白を持って
public class Book
{
private string _title;
public string Title
{
get{ return _title; }
set{ _title = value; }
}
}
を、私は(実際に、それはそれはそれを見て持っていた、それを書くために持っていなかったすべてのことを書いて耐えることができませんでした)、私は不正になり、公共の場を利用しました。
はその後に沿ってC#3.0に来て、私は彼らが自動プロパティを追加参照してください。
public class Book
{
public string Title {get; set;}
}
整然とあり、私はそれのために感謝していますが、実際には、単に公共の場を作るよりも大きく異なる何ですか?
[C#.NETのプロパティとフィールドの違い3.5+]の可能な重複(http://stackoverflow.com/questions/653536/difference-between-property-and-field-in-c-sharp-net- 3-5) – nawfal
私はフィールドをプロパティに変換したので、セッターにブレークポイントを設定することができます –
私はプロパティをフィールドにリファクタリングする必要がある道を実現するため、プライベートではないものを作る傾向があります不必要な頭痛につながります。 [プロパティ、フィールド、およびメソッド。 Oh My!](http://www.codeducky.org/properties-fields-and-methods-oh-my/)は過去に私に噛まれた非互換性を呼び出す。 –