委托和事件的小问题
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(事件处理方法);--------------------编程问答--------------------
问题有两点:
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