日期:2014-05-18  浏览次数:20723 次

通过委托引发事件是不是有静态和动态之分?
静态方式

发送方:
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