【ClassPractice12】自動実装プロパティを使ってみよう

前回はこう書きました。

private int Hp;

public int CurrentHp
{
    get { return Hp; }
    set
    {
        if (value < 0)
        {
            Hp = 0;
        }
        else if (value > MaxHp)
        {
            Hp = MaxHp;
        }
        else
        {
            Hp = value;
        }
    }
}

少し長いですね。

実は C# には、

自動で裏の変数を用意してくれる書き方

があります。

それが 自動実装プロパティ です。


① プロジェクトを追加する

  1. ExtraPractice.sln を開く
  2. 右クリック → 「追加」→「新しいプロジェクト」
  3. 「コンソール アプリ」
  4. プロジェクト名
ClassPractice12
  1. 作成

② Playerクラスを書く

今回はシンプルにします。

namespace ClassPractice12
{
    public class Player
    {
        public string Name { get; set; }

        public int CurrentHp { get; set; }

        public Player(string name, int hp)
        {
            Name = name;
            CurrentHp = hp;
        }
    }
}

何が変わったのか?

public int CurrentHp { get; set; }

これだけで、

  • 取得できる
  • 設定できる
  • 裏で変数も作られる

ようになります。


③ Program.cs

Player p1 = new Player("勇者", 100);

Console.WriteLine(p1.CurrentHp);

p1.CurrentHp = 50;

Console.WriteLine(p1.CurrentHp);

実行結果

100
50

注意点

この書き方は便利ですが、

今は

制御はしていません

つまり、

p1.CurrentHp = -999;

も可能です。


ではなぜ使うの?

自動実装プロパティは、

✔ シンプルなデータ用

✔ 制御が不要なとき

✔ 書きやすさ重視

に使います。


今日のポイント

✔ 自動実装プロパティは短く書ける

✔ 裏に変数が自動で作られる

✔ 制御は書いていない


まとめ

これまでの進化:

  • private フィールド
  • 手書き get / set
  • 制御付きプロパティ
  • 自動実装プロパティ

ここまで来ると、

C# のプロパティの全体像が見えています。


訪問数 2 回, 今日の訪問数 2回