フィールドを外部に公開するのではなく、クラスフィールドのgetterメソッドとsetterメソッド(C#のプロパティ)を作成してカプセル化を保護する必要があるとよく言われます。
ただし、フィールドが値を保持するためだけに存在し、取得または設定するための計算を必要としない場合がよくあります。これらについては、私たち全員がこの番号を実行します。
public class Book
{
private string _title;
public string Title
{
get => _title;
set => _title = value;
}
}
ええと、私には告白があります、私はそれをすべて書くことに耐えられませんでした(実際、それはそれを書く必要はなく、それを見る必要がありました)、それで私は不正に行き、公共の場を使いました。
次に、C#3.0が登場し、自動プロパティが追加されたことがわかります。
public class Book
{
public string Title { get; set; }
}
どちらがきれいで、私はそれに感謝していますが、実際には、単にパブリックフィールドを作成することと何がそんなに違うのですか?
public class Book
{
public string Title;
}