这只是糟糕的文档,将两个概念混为一谈。最新的文档似乎好一点:
提供用于没有事件数据的事件的值。
问题是“一个事件”有两个不同的含义:
例如,说:“订阅KeyPress
事件以接收键盘相关事件”并不是没有道理的。
(“委托”这个词也很糟糕,用来描述委托类型和它们的实例。)
这一切都很不幸,但请放心,您的想法是正确的。
顺便说一句,如果您想在引发事件时调用该方法,我可能会将其分为两种方法:
// This only exists to handle the event, delegating to the DoSomething method
private void HandleItemClicked(object sender, EventArgs e)
{
DoSomething();
}
// This can be called from other code, and should be named according to what it
// does.
private void DoSomething()
{
}
如果你手动订阅事件,你甚至不需要额外的方法:
item.Click += delegate { DoSomething(); };
这样您就可以清楚地表明您的“真实”方法不关心发送者或事件参数,并且您在调用它时不需要提供“虚拟”值。