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に制限する意味は無いと思うのですよ。