という疑問について生真面目に答えてみようかと思います。
プロパティとは
- メソッドの亜種です。
- 公開フィールドの亜種です。
多重継承的ですね。
じゃあプロパティで何が出来るかというと
- パラメータの検証が出来ます。
- フィールドとは別の型で取得または設定できます。
- 複数のフィールドを連動して変更できます。
- 変更時に即時でイベントハンドラが飛ばせます。
- 短縮名として使用できます。
- その他かなりトリッキーなことが出来ます。
基本的にプロパティの役目はオブジェクトの内部に矛盾が生じないようにすることです。
しかしながら、それだけの使い方では勿体ありません。
便利に使ってこその言語機能です。
たとえば、ステータスバーの文字列を変更するのに次のようなコードを書きます。
this.toolStripStatusLabel_Message.Text = "コマンド";
しかし、これでは面倒だし直感的に何のことかわかりません。
そこで、プロパティの登場です。
private string StatusText
{
get { return this.toolStripStatusLabel_Message.Text; }
set { this.toolStripStatusLabel_Message.Text = value; }
}
このくらいは誰でもやってそうですが。
また、各アクセサが非対称なプロパティなんてのも書けます。
たとえば他の関数を呼んだり実際は何もしなかったりなどです。
このテクニックはたとえばサイズが固定のコントロールなんかに応用できます。