プロパティは使う側からはフィールドのようにアクセスできるが、クラス側ではメソッドのように実装できるもの。
プロパティはgetアクセサとsetアクセサで実装する。getアクセサはプロパティが読み込まれたときに行う処理を書き、setアクセサはプロパティに値を割り当てるときに行う処理を書く。必ず両方実装する必要はなく、必要な方だけでよい。getアクセサだけを書けば読み取り専用、setアクセサだけを書けば書き込み専用になる。
public class Test { private int num = 0; public int Num { get { return num; } set { num = value; } } } public void Func() { Test test = new Test(); test.Num = 1; System.Console.WriteLine("{0}", test.Num); }
この例はただ値を取得したり設定するだけのもの。値のチェックをしたり変更したりといった処理をgetやsetのブロックに記述すればよい。
プロパティは変数ではないので、refやoutでメソッドに渡すことはできない。