当前位置:编程学习 > C#/ASP.NET >>

委托和事件的小问题

 public delegate void SubmitUserHandler(object sender, SubmitUserEventArgs e);
    public event SubmitUserHandler SubmitUserEvent;
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        SubmitUserEventArgs args = new SubmitUserEventArgs(tbUserName.Text, tbPassword.Text);
       
        SubmitUserEvent(this, args);


    }

调试时发现点击Button按钮后发现SubmitUserEvent为Null,该怎么解决呢? --------------------编程问答--------------------
SubmitUserEvent+=SubmitUserHandler(事件处理方法);
--------------------编程问答--------------------
引用楼主 lwaifw 的帖子:
public delegate void SubmitUserHandler(object sender, SubmitUserEventArgs e); 
    public event SubmitUserHandler SubmitUserEvent; 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
        SubmitUserEventArgs args = new SubmitUserEventArgs(tbUserName.Text, tbPassword.Text); 
      
        Subm…


 问题有两点:
1.SubmitUserEvent(this, args); 
改成if(SubmitUserEvent != null){SubmitUserEvent(this, args);}

2.你根本就没有给出该委托方法的实现
可改为:

public event SubmitUserHandler SubmitUserEvent += new SubmitUserHandler(OnSubmitUser);
private void OnSubmitUser(object sender, SubmitUserEventArgs e)
{
   //做一些操作
}
/* 单纯来说你在一个类里定义代理没有什么太大意义,一般代理都是在一个类里定义,然后抛出事件,
   在使用它的另一个类里给出具体实现的方法
 */
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,