将parameter passing给EventHandler
我有以下EventHandler我添加了一个参数MusicNote音乐: 
 public void PlayMusicEvent(object sender, EventArgs e,MusicNote music) { music.player.Stop(); System.Timers.Timer myTimer = (System.Timers.Timer)sender; myTimer.Stop(); } 
 我需要像下面这样将处理程序添加到Timer : 
 myTimer.Elapsed += new ElapsedEventHandler(PlayMusicEvent(this, e, musicNote)); 
但得到的错误:
“方法名称预计”
 编辑:在这种情况下,我只是从包含此代码段的方法传递e,我将如何传递计时器自己的EventArgs ? 
  Timer.Elapsed需要特定签名的方法(使用参数object和EventArgs )。 如果您想在事件注册过程中使用您的PlayMusicEvent方法和额外的参数,可以使用lambdaexpression式作为适配器: 
 myTimer.Elapsed += new ElapsedEventHandler((sender, e) => PlayMusicEvent(sender, e, musicNote)); 
编辑:你也可以使用较短的版本:
 myTimer.Elapsed += (sender, e) => PlayMusicEvent(sender, e, musicNote); 
如果我正确理解你的问题,你正在调用一个方法,而不是作为parameter passing。 尝试以下操作:
 myTimer.Elapsed += PlayMusicEvent; 
哪里
 public void PlayMusicEvent(object sender, ElapsedEventArgs e) { music.player.Stop(); System.Timers.Timer myTimer = (System.Timers.Timer)sender; myTimer.Stop(); } 
但是你需要考虑在哪里存储你的笔记。