第13章:プロパティ(getter / setter)

プロパティとは、クラスのフィールドに対するアクセスをコントロールする仕組みです。 フィールドを直接公開せずに、安全に値の取得(getter)や設定(setter)を行うことができます。

コード例:プロパティを使わない場合

class Person
{
    public int Age;
}

class Program
{
    static void Main()
    {
        Person p = new Person();
        p.Age = -5; // 不正な値でも代入できてしまう
        Console.WriteLine(p.Age);
    }
}

このように、フィールドを直接公開していると不正な値(マイナスの年齢など)が簡単に設定されてしまいます。 これを防ぐためにプロパティを使います。

コード例:プロパティで安全な値の管理

using System;

class Person
{
    private int age;

    public int Age
    {
        get { return age; }
        set
        {
            if (value >= 0)
            {
                age = value;
            }
            else
            {
                Console.WriteLine("年齢には負の数を設定できません。");
            }
        }
    }
}

class Program
{
    static void Main()
    {
        Person p = new Person();
        p.Age = 25;
        Console.WriteLine(p.Age);

        p.Age = -10; // 無効な値
        Console.WriteLine(p.Age);
    }
}

出力結果

25
年齢には負の数を設定できません。
25

解説

コード例:自動実装プロパティ(簡略版)

class Book
{
    public string Title { get; set; }
}

class Program
{
    static void Main()
    {
        Book b = new Book();
        b.Title = "C#入門";
        Console.WriteLine(b.Title);
    }
}

出力結果

C#入門

補足

練習問題