首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

通过委托引发事件是不是有静态和动态之分?该怎么解决

2012-01-13 
通过委托引发事件是不是有静态和动态之分?静态方式发送方:publicdelegatevoidsendmess(stringstr)publics

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

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

热点排行