首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么构成了“多余的委托创建”?

什么构成了“多余的委托创建”?
EN

Stack Overflow用户
提问于 2009-01-31 05:54:30
回答 2查看 4.8K关注 0票数 14

我在我的类中注册了一个事件,像往常一样,我很懒,只是使用了Visual Studio2008Pro中内置的自动完成功能,该功能自动创建委托创建及其关联的方法。

代码语言:javascript
运行
复制
public abstract class FooBase
{
    protected event EventHandler<MyValueChangedArgs> MyValueChanged;

    protected FooBase()
    {
        MyValueChanged +=
            new EventHandler<MyValueChangedArgs>(HandleMyValueChanged);
    }

    private void HandleMyValueChanged(object sender, MyValueChangedArgs e)
    {
        // Some handling logic
    }
}

通常,当Visual Studio为我生成事件处理程序时,我不会三思而后行,但后来我收到了Refactor的建议!Pro到“删除多余的委派创建”。该建议的结果是:

代码语言:javascript
运行
复制
public abstract class FooBase
{
    protected event EventHandler<MyValueChangedArgs> MyValueChanged;

    protected FooBase()
    {
        MyValueChanged += HandleMyValueChanged;
    }

    private void HandleMyValueChanged(object sender, MyValueChangedArgs e)
    {
        // Some handling logic
    }
}

在什么情况下创建委托是多余的,什么时候创建委托是合适的?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-01-31 05:59:50

我认为这是重构!告诉你这句话

代码语言:javascript
运行
复制
MyValueChanged += new EventHandler<MyValueChangedArgs>(HandleMyValueChanged);

可以缩短,编译器将推断事件处理程序的创建和TEventArgs类型参数...

在什么情况下创建委托是多余的,什么时候创建委托是合适的?

在设计器生成的代码上...

票数 6
EN

Stack Overflow用户

发布于 2009-01-31 06:02:08

真对不起。当匿名方法被添加到C#中时,我们没有时间在产品计划中生成更短的代码。

我总是编辑生成的代码以删除多余的语法。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/498363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档