Partial Methods

C# 3.0でこっそり(?)追加されたPartial Methodsですが、戻り値がvoidでなければならないとか、妙に恣意的な制約が気になります。特定の場面で使うことしか考えていない風に見え、それを言語仕様に組み込むのはどうなの?って感じが・・・

確かにPartial Metehodsは実装が存在しなければ、コンパイル時にコードが削除されるので、戻りのあるメソッドでは・・・というのは分からなくないのですが、

using System;

static partial class Foo
{
    delegate void Bar();

    static partial void Baz();

    static void Main()
    {
        Bar bar = Baz;
        bar();
    }
}

結局、上記のようなメソッドを実装することが必須となるコードが書ける以上、戻り値をvoidに制限する意味は無いと思うのですよ。