1. ホーム
  2. c#

[解決済み】C#でprivateプロパティを使用する理由はあるのでしょうか?

2022-03-29 13:16:07

質問

今気づいたのですが、C#の プロパティの構成 を使用することもできます。 プライベート アクセス修飾子があります。

private string Password { get; set; }

技術的には面白いのですが プライベートフィールド には、さらに 式が少ない :

private string _password;

と、内部で必要になる時が来るとは想像もつきません。 得る でなく セット または セット ただし 得る はプライベートフィールドです。

private string Password { get; }

または

private string Password { set; }

が、もしかしたら ネストされた/継承されたクラス または、get/set に含まれるかもしれない ロジック しかし、私はプロパティを厳密にシンプルに保ち、明示的なメソッドにあらゆるロジックを任せる傾向があります。 GetEncodedPassword() .

C#でプライベートプロパティを使う人はいますか?それとも、技術的には可能だけど、実際のコードではほとんど使われない構造の一つですか?

追記

いい回答がありましたので、個人所有の物件での使い方を抜粋しました。

  • プライベートフィールドを遅延ロードする必要がある場合
  • プライベートフィールドに特別なロジックが必要な場合、または計算値である場合
  • プライベートフィールドはデバッグが困難な場合があるため
  • 自分自身に契約を提示するため。
  • シリアライズの一環として、公開されたプロパティを内部的に変換/簡略化する場合
  • クラス内部で使用するグローバル変数をラップする。

解決方法は?

私は値をキャッシュする必要があり、遅延ロードしたい場合に使用します。

private string _password;
private string Password
{
    get
    {
        if (_password == null)
        {
            _password = CallExpensiveOperation();
        }

        return _password;
    }
}