当前位置:  开发笔记 > 编程语言 > 正文

什么构成'冗余代表创建'?

如何解决《什么构成'冗余代表创建'?》经验,为你挑选了2个好方法。

我正在注册我班上的一个事件,并且按照惯例,我很懒,只使用Visual Studio 2008 Pro中内置的自动完成功能,它自动创建委托创建及其相关方法.

public abstract class FooBase
{
    protected event EventHandler MyValueChanged;

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

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

通常我不会三思而后行Visual Studio为我生成事件处理程序,但后来我收到了Refactor的推荐!专业"删除冗余代表创建".建议结果如下:

public abstract class FooBase
{
    protected event EventHandler MyValueChanged;

    protected FooBase()
    {
        MyValueChanged += HandleMyValueChanged;
    }

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

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

谢谢.



1> CMS..:

我认为那是重构!告诉你那条线

MyValueChanged += new EventHandler(HandleMyValueChanged);

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

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

关于设计器生成的代码......



2> Jay Bazuzi..:

对于那个很抱歉.我们在产品计划中没有时间在匿名方法添加到C#时生成更短的代码.

我总是编辑生成的代码以删除额外的语法.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有