我刚刚让 VS 为我生成了一个事件处理程序,它创建了一个属性而不是一个方法。我不明白。我刚刚在 VS 2012 中尝试了一个单独的测试,它按预期工作。
首先,这是我的测试,我认为它会起作用:
private static void EventTest()
{
Geek skeet = new Geek();
skeet.SomeEvent += skeet_SomeEvent;
}
当我让 VS 为我生成处理程序时,它创建了这个。
static void skeet_SomeEvent(object sender, EventArgs e)
{
throw new NotImplementedException();
}
那讲得通。调用事件时将调用该方法。
现在,问题...我正在开发一个现有项目,在 VS 2010 中,当我做同样的事情时(让 VS 生成处理程序):
private void SubscribeToPlcDataChangeEvents()
{
_plc.PlcLoggerEventHandler += _plcLoggerEventHandler;
}
它创建一个属性:
public EventHandler<PlcLoggerEventArgs> _plcLoggerEventHandler { get; set; }
为什么?我不明白。我想在一个方法中处理事件。
编辑 - 这是事件处理程序的声明方式:
public event EventHandler<PlcLoggerEventArgs> PlcLoggerEventHandler;