中さんところで話題になっているpartial methodがちょっと気になったのでググってみた。
すると青柳さんのブログ「 青柳臣一 blog : .NET や C# がメインの blog」にちょっと詳しく説明してくださっていました。
まま、要約すると
partial void Function();
という定義と
partial void Function() {
//実装
}
として分けることができるそうな。
で、どういったときに使うかっていうと実装が定義されているときはその実装を適用するけど、定義されてなければ何もしないで戻るってことのようです。
なので、呼び出し側は意識せずに呼べばよろしい。 ということのようですが・・・他にも利用するにはいろいろと要件があって、青柳さんのエントリによると・・・。
- partial class の中だけで使用可。
- partial method は partial キーワードをつける必要があり、戻り値は void でないといけない。
- partial method は ref パラメータは使えるが out パラメータは使えない。
- partial method は暗黙に private で、 それゆえ virtual にはできない。
- partial method は extern にはできない。
- partial method は static と unsafe はつけられる。
- partial method は generic にできる。
- partial method の delegate は作れない。
ということのようです。
んー、つまりは動的にメソッドの中身を定義するような用途には使えないようですねー。
んー、ますます使い道がわからなくなってきたorz
要は後から実装するから、とりあえず空でおいておきたい場合とかに使うのかな?(^^;
それなら戻り値がvoidのみってのもなぁ・・・。
んー、あれかな。イベントハンドラなんかを記述するのに.designer.csにpartial methodを記述して、でもってホントのハンドラは自分でpartial methodで記述せーよ。と。
・・・・・・・・んー、やっぱりわからん。 全然便利な気がしない。 はて、何か理解が違っているのか!?