通过委托引发事件是不是有静态和动态之分?
静态方式
发送方:
public delegate void sendmess(string str);
public static event sendmess send;
按钮click触发事件
if (send!=null)
{
send( "aaa ");
}
接收方:
{
InitializeComponent();
form1.send+=new form1.sendmess(sendstr);
}
void sendstr(string str)
{
text1.text=str;
}
动态方式
发送方:
public delegate void sendmess(string str);
public event sendmess send;
单击按钮1后打开接收窗体
form2 form2=new form2();
this.send+=new sendmess(form2.sendstr);
form2.show();
按钮2click触发事件
if (send!=null)
{
send( "aaa ");
}
接收方:
public void sendstr(string str)
{
text1.text=str;
}
以上两种方式我都测试过了,都可以引发事件,处理事件,那么两者的区别在哪里呢?看一些资料好象使用后者的居多,那种方式比较好?
------解决方案--------------------sf
不清楚帮顶
------解决方案--------------------貌似应该和静态变量与普通变量的区别相同。
事件(event)也是一种成员类型。
------解决方案--------------------静态是类范围的,
动态是实例范围的,
基本概念......
至于引发事件,不管是静态还是动态,只要你的委托有绑定方法就可以执行
------解决方案--------------------事件也有静态与动态之分,静态事件不用创建对象,类会响应..
------解决方案--------------------顶!
------解决方案--------------------up