1. ホーム
  2. c#

[解決済み] C# 3.0自動プロパティ - 役に立つか否か?[クローズド]です。

2022-04-27 18:41:02

質問

注:これは私がC#を始めたころに投稿したものです。2014年の知識では、オートプロパティはC#言語に起こった最高の出来事の一つだと心から言える。

私はC#でプライベートとパブリックのフィールドを使ってプロパティを作成するのに慣れています。

private string title;
public string Title
{
    get { return title;  }
    set { title = value;  }
}

では .NET 3.0では、オートプロパティが導入されました。

public string Title { get; set; }

これはより哲学的/主観的な質問だと思いますが、各フィールドの5行のコードを節約する以外に、これらの自動プロパティを使用する理由があるのでしょうか?私の個人的な不満は、これらのプロパティが私から何かを隠していることで、私は黒魔術の大ファンではありません。

実際、隠されたプライベートフィールドはデバッガにも表示されず、get/set関数が何もしないことを考えれば問題ない。しかし、実際にゲッター/セッターのロジックを実装しようとすると、いずれにせよprivate/publicのペアを使用しなければならない。

私は、後でゲッター/セッターロジックを変更する能力を失うことなく、多くのコード(1行対6行)を節約できるという利点を理解しています。しかし、私はすでに、{ get; set; }ブロックの必要なく、単にパブリックフィールド "Public string Title" を宣言してそれを行うことができるので、さらにコードを節約することができます。

では、何が足りないのでしょうか?なぜ、実際にオートプロパティを使おうとする人がいるのでしょうか?

解決方法は?

Stack Overflowでいつも使っているものです。

についての議論にも興味があるかもしれません。 プロパティとパブリック変数の比較 . IMHO これは本当にそれに対する反応であり、その目的のためには、これは素晴らしいものです。