利点は何ですか:
public string User {get; set;}
以上
public string User;
最初のケースではプライベート メンバーにアクセスできないため、プロパティをパブリックにするだけでどう違うのでしょうか?
利点は何ですか:
public string User {get; set;}
以上
public string User;
最初のケースではプライベート メンバーにアクセスできないため、プロパティをパブリックにするだけでどう違うのでしょうか?
2番目の例は、プロパティではなく、フィールドをパブリックにすることです(あなたの質問)。これにより、単純なプロパティを作成する簡単な方法が提供されます。パブリック フィールドではなく、プロパティをデフォルトにする必要があります。理由のリストは無限にありますが、次から始まります。
ああ、カプセル化について言及しましたか?
事後的にフィールドからプロパティに変更することは、重大な変更です。特に、多くの「ref」コードまたは変更可能な構造体 (yeuch) を使用する場合はなおさらです。
User 値が変更された場合、いくつかの操作を行う必要があります。事前にわからないこと、またはクラスを設計する時点では存在しないこと。たとえば、ある日、ユーザー値は少なくとも 5 文字の長さにする必要があることに気付きました。プロパティがあれば、実装は簡単です。public フィールドがある場合は、それをプロパティに変更し、すべての依存コードを再コンパイルする必要があります。
本質的に、タイプのパブリック/API 部分とプライベート実装の詳細を明示的に分離することは有効だと思います。
誰かがカプセル化について言及しましたか? ;)