如何动态给Eventdelegate event 区别添加参数

NGUI中 EventDelegate 如何创建一个带参数的函数委托_精品文库_IThao123 - IT行业第一站
下面的内容讲述了如何在List&EventDelegate& 实例的委托链中加入一个带参数的函数。
以UIToggle为例,现在要在它的onChange中添加一个回调函数
设 &UIToggle &脚本实例为 &&tmp_tog,
UIToggle所在的GameObject为&tmp_obj
回调脚本为&tmp_item ,
要执行的函数为&public void setCurrent(GameObject obj)
//实例化一个EventDelegate 对象
EventDelegate tmpDEL = new EventDelegate(tmp_item,&setCurrent&);
//把它的.parameters[0]指定为函数的第一个参数,本例就只有一个参数,如果多个参数的话,同样的为[1]、[2]....赋值,
//其中obj就是第一个参数,field应该不重复就行,具体不详,我是随便写的。
tmpDEL.parameters[0] = new EventDelegate.Parameter() { obj = tmp_obj, field = &toggle&};
//在onChange链表中加入该EventDelegate 对象
&tmp_tog.onChange.Add(tmpDEL);
以上实测可行,注意parameters[x] 赋值里写的参数与回调函数的一致性简单例子快速了解事件处理和委托eventdelegate_ASP.NET技巧_
简单例子快速了解事件处理和委托eventdelegate
来源:人气:244
以下仅仅是用最简单的方式表示事件,实际应用可能是不同窗体之间相互通知某些操作,达到触发。
首先声明一个degate的 EventHandler 参数可以没有 一个或多个 但是触发和使用一定要匹配。
创建一个该EvenHandler的实例a
在程序建立或你需要的时候产生一个事件触发申明
[csharp]&view plaincopy
a&+=&new&EventHandler(d);&&
public delegate void EventHandler(string s);
实际触发事件a("")
就可以调用实际操作。
[csharp]&view plaincopy
[csharp]&view plaincopy
public&event&EventHandler&a;&&
public&Form1()&&
&&&&InitializeComponent();&&
&&&&a&+=&new&EventHandler(d);&&
ivate&void&button1_Click(object&sender,&EventArgs&e)&&
&&&&MessageBox.Show("即将引发事件!");&&
&&&&a("ss");&&
&&&&MessageBox.Show("11");&&
public&void&d(string&s)&&
&&&&MessageBox.Show("d."+s);&&
优质网站模板

我要回帖

更多关于 eventdelegate.add 的文章

 

随机推荐