代码之家  ›  专栏  ›  技术社区  ›  Llyle

什么是“冗余委托创建”?

  •  15
  • Llyle  · 技术社区  · 17 年前

    我在班上注册了一个活动,和往常一样,我很懒,只使用Visual Studio 2008 Pro内置的自动完成功能,该功能自动创建委托创建及其相关方法。

    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
        }
    }
    

    public abstract class FooBase
    {
        protected event EventHandler<MyValueChangedArgs> MyValueChanged;
    
        protected FooBase()
        {
            MyValueChanged += HandleMyValueChanged;
        }
    
        private void HandleMyValueChanged(object sender, MyValueChangedArgs e)
        {
            // Some handling logic
        }
    }
    

    谢谢。

    2 回复  |  直到 17 年前
        1
  •  6
  •   Christian C. Salvadó    17 年前

    我认为这是重构!告诉你

    MyValueChanged += new EventHandler<MyValueChangedArgs>(HandleMyValueChanged);
    

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

    在什么情况下代表 授权创建是否合适?

    基于设计器生成的代码。..

        2
  •  6
  •   Jay Bazuzi Buck Hodges    17 年前

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

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