关于C#委托的一个问题(我刚接触C#,希望大家多多帮助)
想请教各位一个有关C#委托的问题: 
 有这样一条语句 
 pollTimer.Elapsed   +=   new   ElapsedEventHandler(CheckForMessage);    
 函数签名是:private   void   CheckForMessage(object   source,   ElapsedEventArgs   e)    
 把签名改成:private   void   CheckForMessage(object   source,   EventArgs   e)   仍然没问题    
 甚至改成private   void   CheckForMessage(object   source,   object   e)   也没问题   这是为什么?    
 委托不是要匹配函数签名的么?
------解决方案--------------------支持自动转型。即使是返回值也可以向下兼容
------解决方案--------------------ElapsedEventArgs  是从 EventArgs 继承 来的     
 定义的肯定是基类   
 如果定义子类   积累就不能用
------解决方案--------------------这是2.0中一个总是被人忽视的新特性,委托的协变和逆变。   
 详情请打开你的VS帮助,索引协变,或者参阅下面地址: 
 ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_csref/html/e6acad03-93e0-4efb-a158-8696d5eb4ecf.htm