方法一:调用方:
public delegate void _xinzen();
public event _xinzen _xinzenshjian;
//新增按钮的事件
private void button1_Click(object sender, EventArgs e)
{
_xinzenshjian();
}
执行方:
private void Form1_Load(object sender, EventArgs e)
{
control_console1._xinzenshjian += new Control_console.control_console._xinzen(xinzen);
} private void xinzen()
{
textBox4.Text = "shijianchufa";
}
方法二:调用方:
public delegate void _xinzen();
public _xinzen _xinzenshjian; //与第一种比较仅仅去掉了event
//新增按钮的事件
private void button1_Click(object sender, EventArgs e)
{
_xinzenshjian();
}
执行方:
private void Form1_Load(object sender, EventArgs e)
{
control_console1._xinzenshjian += new Control_console.control_console._xinzen(xinzen);
} private void xinzen()
{
textBox4.Text = "shijianchufa";
}
上面的两种方法,一个使用了evnet关键字,一个没有,这有什么区别?哪一种更好?
下面是易懂的说明
深入浅出话事件——上
http://blog.csdn.net/fantasiax/archive/2006/06/19/812758.aspx深入浅出话事件——下
http://blog.csdn.net/fantasiax/archive/2006/06/20/816074.aspx下面是比较晦涩的说明
事件
http://msdn2.microsoft.com/zh-cn/library/awbftdfh(VS.80).aspx
事件设计
http://msdn2.microsoft.com/zh-cn/library/ms229011(VS.80).aspx
==================
hope this help
control_console1._xinzenshjian += new Control_console.control_console._xinzen(xinzen); 貌似楼主的这种使用方式不是事件,个人认为以上这种情况就是委托的多播委托实例化的一种方式
只是表达形式与挂载事件的形式相似.而第一种情况才是标准的事件处理.
如果我猜的不错,control_console1这个就是form本身是吧
所以才想用委托
和你说的一样,第一种使用了事件,第二种仅仅使用委托,只是不明白这两种方法的根本区别上面的回答都没能说中要害
或者谁能告诉我这两种不同的方法哪一种性能更佳,为什么?