风格问题。
订阅事件的C#1.0方法是使用显式封装委托:
publisher.RaiseCustomEvent += new CustomEventHandler(HandleCustomEvent);
在C#2.0中,他们添加了一种更简单的语法:
publisher.RaiseCustomEvent += HandleCustomEvent;
在Visual Studio 2010中(使用.NET 3.5项目测试)输入
"myObject.SomeEvent +="
显示选项以点击选项卡以填写显式委托。 此外,使用WinForms设计器创建的代码始终使用显式委托。
我理解明确的价值,但不是牺牲可读性。鉴于新语法更简单/更清晰/可读并且自2006年以来一直存在,为什么Visual Studio会如此努力地使用旧语法?它仍然是首选语法吗?
答案 0 :(得分:1)
对于设计器代码,应该坚持使用显式委托创建。两种方法(隐式类型委托和显式类型委托)都会产生相同的IL;隐式类型只是C#中的一种语言特性,因此设计师没有特别的理由试图利用它们。
关于附加到事件的预先输入功能,我没有解释。唯一需要显式委托创建的时间(我知道)是目标类型为Delegate
(意味着它没有正式签名)。由于您只能声明一个具有特定委托类型的事件,因此除了选择优先考虑其上的其他IDE功能之外,我只能看到这一点作为保留的原因。
答案 1 :(得分:0)
没有充分的理由。我总是删除它们。适合自己,虽然我同意你必须删除它们的任何倾向!