フィールドへのアクセスを制御!「プロパティ(Property)」とは?
C#には、フィールド(変数)へのアクセスを安全に行うための仕組みとして プロパティ(Property) があります。
値の取得(get
)や設定(set
)の処理をカプセル化することで、クラスの内部を守りつつ、外部に公開できます。
プロパティの基本構文
public 型名 プロパティ名 {
get { return 値; }
set { 値 = value; }
}
例:プロパティを使ったクラス
public class Person {
private string name;
public string Name {
get { return name; }
set { name = value; }
}
}
この例では、name
フィールドに直接アクセスさせず、Name
というプロパティを通して値の取得・変更を行っています。
プロパティの使い方
Person p = new Person();
p.Name = "太郎"; // set
Console.WriteLine(p.Name); // get
自動実装プロパティ(短い書き方)
フィールドの定義と同時にプロパティを簡潔に書く方法です。
public class Person {
public string Name { get; set; }
}
get / set に処理を追加することも可能
private int age;
public int Age {
get { return age; }
set {
if (value >= 0) {
age = value;
} else {
Console.WriteLine("年齢は0以上を指定してください");
}
}
}
読み取り専用・書き込み専用プロパティ
// 読み取り専用(getのみ)
public string Id { get; }
// 書き込み専用(setのみ)
public string Password { private get; set; }
プロパティのメリット
- 外部からのアクセスを制御できる
- データの整合性・安全性を確保できる
- フィールドの代わりに柔軟な振る舞いを追加できる
まとめ
プロパティ(Property)は、クラスの内部データを安全に公開・操作するための機能です。
get / set
を使えば、フィールドへの読み書きをコントロールでき、C#のクラス設計に欠かせない存在です。
自動実装プロパティと手動プロパティを使い分けることで、柔軟なクラスが作れます!