2024年1月6日土曜日

C# のプロパティとは

 C# のプロパティは、クラスのメンバ変数にアクセスするための特別なメソッドです。プロパティの使用により、クラスのメンバ変数を外部から隠蔽し、アクセス制御やデータの検証などの機能を追加することができます。

プロパティの書き方

プロパティは、次の構文で宣言します。

C#
アクセス修飾子 型 プロパティ名 { get; set; }

例えば、次のコードは、int 型のメンバ変数 _count を隠蔽し、Count プロパティとして公開する例です。

C#
public class MyClass {
    private int _count;

    public int Count {
        get {
            return _count;
        }
        set {
            _count = value;
        }
    }
}

プロパティのアクセス修飾子は、メンバ変数のアクセス修飾子と同じものを使用します。get アクセス修飾子は、プロパティの値を取得するためのメソッドを定義します。set アクセス修飾子は、プロパティの値を設定するメソッドを定義します。

プロパティの使用

プロパティは、クラスのメンバ変数のように使用できます。例えば、次のコードは、MyClass クラスのインスタンス mcCount プロパティに値を設定する例です。

C#
MyClass mc = new MyClass();
mc.Count = 10;

プロパティの値を取得するには、次のコードのようにします。

C#
int count = mc.Count;

プロパティの利点

プロパティを使用すると、次の利点があります。

  • メンバ変数を外部から隠蔽し、アクセス制御やデータの検証などの機能を追加することができます。
  • メンバ変数の型を隠蔽し、クラスの柔軟性を高めることができます。
  • メンバ変数のアクセスを簡潔に記述することができます。

プロパティの種類

プロパティには、次の3種類があります。

  • 読み取り専用プロパティ

読み取り専用プロパティは、set アクセス修飾子がないプロパティです。読み取り専用プロパティは、メンバ変数の値を取得するだけに使用できます。

例えば、次のコードは、読み取り専用プロパティの例です。

C#
public class MyClass {
    private string _name;

    public string Name {
        get {
            return _name;
        }
    }
}
  • 書き込み専用プロパティ

書き込み専用プロパティは、get アクセス修飾子がないプロパティです。書き込み専用プロパティは、メンバ変数の値を設定するだけに使用できます。

例えば、次のコードは、書き込み専用プロパティの例です。

C#
public class MyClass {
    private int _count;

    public void SetCount(int count) {
        _count = count;
    }
}
  • 自動実装プロパティ

自動実装プロパティは、get アクセス修飾子と set アクセス修飾子のみを持つプロパティです。自動実装プロパティは、メンバ変数の型を指定することで、get アクセス修飾子と set アクセス修飾子のコードを自動的に生成することができます。

例えば、次のコードは、自動実装プロパティの例です。

C#
public class MyClass {
    private int _count;

    public int Count {
        get; set;
    }
}

まとめ

プロパティは、クラスのメンバ変数にアクセスするための便利な機能です。プロパティを使用すると、メンバ変数を外部から隠蔽し、アクセス制御やデータの検証などの機能を追加することができます。

0 件のコメント:

コメントを投稿