C#3.0からの新機能の1つにパーシャルメソッドと言われるものがある。
なんぞや?と思ってみると、デザイナ様のためのコードになるっぽい。
無意味だけど動きを確認するためのコードを書いて、VS2008beta2に食べさせてみた。
partial class Hoge {
// これがパーシャルメソッド
partial void OnFooCalling();
partial void OnFooCalled();
// このメソッドでパーシャルメソッド呼んでる!
public void Foo()
{
OnFooCalling();
Console.WriteLine("Hoge#Foo");
OnFooCalled();
}
}これを使う側では、普通にインスタンス化してFooを呼んでやればいい。
new Hoge().Foo();
これを実行すると、Hoge#Fooと表示される。
中身はどこで定義するの??ってのは別のパーシャルクラスでやります。
こんな具合で。
partial class Hoge
{
partial void OnFooCalling()
{
Console.WriteLine("Before");
}
partial void OnFooCalled()
{
Console.WriteLine("After");
}
}
この状態でnew Hoge().Foo()を呼ぶと結果が下みたいになります。
Before
Hoge#Foo
After
パーシャルメソッドはこんな動きをする。