在Visual Studio 2015中添加eventandler不会像在2010中那样自动完成



我正试图从2010年迁移到Visual Studio 2015,并发现EventHandler声明有点不同。

在2010年,我可以输入以下内容…

this.MyNewEvent += (space)

,它会弹出"按TAB自动完成"。然后按tab键后,我将得到以下内容…

this.MyNewEvent += new EventHandler<MyNewEventArgs>(MyClassName_MyNewEvent);
void MyClassName_MyNewEvent(object sender, MyNewEventArgs e)
{
    throw new NotImplementedException();
}

现在在2015年,当我输入下面的…

this.MyNewEvent += (space)

结果如下:

this.MyNewEvent += MyClassName_MyNewEvent;
private void MyClassName_MyNewEvent(object sender, MyNewEventArgs e)
{
    throw new NotImplementedException();
}

如果这是新的方式,那就很奇怪了,因为我的很多旧代码都是按照2010年的方式呈现的。

为什么不再使用new EventHandler<>()格式?有没有办法让它回到2010年的样子?

我一直等着迭戈来邀功,但似乎这不会发生。:)

正如问题的注释所述,两种不同的格式呈现相同的结果。没有理由改变它们的使用方式,但使用c#2.0格式是有意义的,因为它需要更少的字符,看起来更友好,并且消除了定义中的冗余。

文章如何:订阅和取消订阅事件(c#编程指南)展示了它们是如何相同的,只是在不同的框架/ide中呈现不同。

c# 1.0

this.MyNewEvent += new EventHandler<MyNewEventArgs>(MyClassName_MyNewEvent);
void MyClassName_MyNewEvent(object sender, MyNewEventArgs e)
{
    throw new NotImplementedException();
}

c# 2.0

this.MyNewEvent += MyClassName_MyNewEvent;
private void MyClassName_MyNewEvent(object sender, MyNewEventArgs e)
{
    throw new NotImplementedException();
}

最新更新