Ognacさんトコのコメントにしようと思ったけど、日記にしてみる。
どうして、イベントハンドラのsenderはobject型なのか? という話。
リンク先では、イベント型の単純化、抽象化のためではないかと言われているけれど、もしそうだとしたら、それは怠慢ではないのだろうか。
だって、こういうことはできるのだから。
delegate void ButtonEventDelegate(Button sender, EventArgs e);
event ButtonEventDelegate Click;
void GenericControlEventHandler(Control sender, EventArgs e);
this.Click += GenericControlEventHandler;
別にイベントハンドラ型が抽象的でなくとも、必要とあらば、それに結びつけるメソッドを抽象的にすることはできる。
てコトは単に、「個別の型をいっぱい作るのが面倒くせぇ」ってことじゃねぇの?