在winform中,我发现,lambda表达式可以用在 Form的构造函数中,但是不可以自行定义在方法中写.
但是可以注册 new EventHandler
我查了一下 .design
没有发现有什么特点...

解决方案 »

  1.   

    lambda表达式可以用在 Form的构造函数中,但是不可以自行定义在方法中写
    什么意思?
    Lambda在任何可以写代码的地方都可以写。
    e.g:
    class Form1
    {
        Action<string> showMsg = x => MessageBox.Show(x);
        public Form1() { Action<string> showMsg1 = x => MessageBox.Show(x); }
        void customMethod() { Action<string> showMsg2 = x => MessageBox.Show(x); }
    }
      

  2.   

    我不是你上面说的意思,
    比如,//用户名(鼠标离开).
            private void txtUserName_LeaveEvent(object sender, EventArgs e) {
                if(string.IsNullOrEmpty(txtUserName.Text)) {
                    errorPro.SetError(txtUserName, "用户名不能为空!");
                    return;
                }
                var userName = _adapter.GetDataByUserName(txtUserName.Text.Trim());
                if(userName.Count >= 1) {
                    errorPro.SetError(txtUserName, "用户名已经存在,请使用其他用户名!");
                    return;
                }
                errorPro.SetError(txtUserName, ""); //通过用户名.
                btnAdd.Click += new EventHandler(AddMember);
            }
    //上面最后一行的AddMember是我自定义的方法.
    //我想这样写:
    btnAdd.Click += (sender, e) => AddMember(sender, e);
    //但是这样只能在 构造函数中写...
      

  3.   

    对对..我可以...我忘记看提示了...因为用的 两个参数 sender 和e ,定义和其所在方法参数重复了...