[英]2 Dynamic Buttons, 1 Event Handler. How to determine who clicked the event?
[英]Visual Studio creates a property instead of a method event handler. Why?
我刚刚为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;
如果你点击Tab两次,你会发现它是在事件处理程序的情况下“正确”生成的。
如果您在Visual Studio 2010中使用“帮助绑定项目的选项”快捷键Alt + Shift + F10 ,在这种情况下您的两个可能的操作是:
因此,当您使用它时创建属性这一事实似乎是By Design,即使在事件处理程序的情况下也没有意义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.