次の方法で共有


プロパティ (C# プログラミング ガイド)

プロパティは、プライベート フィールドの値の読み取り、書き込み、または計算を行う、柔軟な機構が用意されたメンバです。プロパティは、パブリック データのメンバと同様に使用できますが、実際はアクセサという特殊なメソッドが使用されます。メソッドの安全性と柔軟性を維持しながら、簡単にデータへアクセスできます。

この例では、TimePeriod クラスに期間が格納されています。内部的に、クラスに秒単位で期間が格納されていますが、クライアントが時間単位で期間を指定できる Hours というプロパティも用意されています。Hours プロパティのアクセサでは、時間と秒の変換が実行されます。

使用例

class TimePeriod
{
    private double seconds;

    public double Hours
    {
        get { return seconds / 3600; }
        set { seconds = value * 3600; }
    }
}

class Program
{
    static void Main()
    {
        TimePeriod t = new TimePeriod();

        // Assigning the Hours property causes the 'set' accessor to be called.
        t.Hours = 24;

        // Evaluating the Hours property causes the 'get' accessor to be called.
        System.Console.WriteLine("Time in hours: " + t.Hours);
    }
}

出力

Time in hours: 24

プロパティの概要

  • プロパティによって、クラスの実装や検査のコードを隠ぺいしたままで、値の取得と設定を行うことができるようになります。

  • get プロパティ アクセサはプロパティ値を返すときに使用され、set アクセサは新しい値を割り当てるときに使用されます。2 つのアクセサには異なるアクセス レベルを指定できます。詳細については、「アクセサのアクセシビリティ」を参照してください。

  • value キーワードは、set インデクサで割り当てられている値を定義するときに使用されます。

  • set メソッドが実装されないプロパティは、読み取り専用です。

関連項目

C# 言語仕様

詳細については、「C# 言語仕様」の次のセクションを参照してください。

  • 1.6.6.2 プロパティ

  • 10.2.7.1 プロパティ用に予約されているメンバ名

  • 10.6 プロパティ

参照

関連項目

プロパティの使用 (C# プログラミング ガイド)
インデクサ (C# プログラミング ガイド)

概念

C# プログラミング ガイド
プロパティのデザイン