🐈

[C#] クラスのプロパティって何?

2023/11/13に公開

こんな感じのコードよく見かけませんか。

public int Hp { get; private set; }

改めてプロパティの便利さを認識したいと思います。
クラス変数は基本的にセキュリティの面からprivateに設定します。そのため外側から直接変数にアクセスすることができません。

private int _hp; 

アクセスする際に関数を通すことによってセキュリティ面を担保しつつ、外側から変数にアクセスする手段を提供するのがプロパティです。

private int _hp;
public int Hp {
    get { return _hp; }
    set { _hp = value; }
}

最初の例では、自動実装プロパティを使用して、バッキングフィールド (プロパティの値を格納するために内部で使用されるprivate変数) を省略しています。

Discussion