3.4 C#的委托
在开发的各种系统中,在程序设计上是如何处理事件的触发问题呢?C++中使用函数指针来处理回调函数,但是这样的做法有巨大的副作用。而在C#中使用委托来封装事件处理函数的指针,并且使用委托来定义对象触发的事件。
在C#中如何实现一个委托呢?具体步骤如下所述。
(1)声明一个delegate对象,它和要定义的一系列触发的方法有相同的参数和返回类型。具体申请代码如下:
Public delegate void InviteEventHandler(string name);
(2)必须先实例化委托,创建一个delegate对象,然后把要委托的方法绑定到这个对象上。
(3)使用委托。在前面对象绑定了委托的方法后,我们只需要触发这个对象委托的事件,就会调用对应的委托方法了。
具体的示例代码如下:
Class Program
{
//定义委托声明的方法
delegate int TestDelegate(object i_object);
//定义委托的对象
static event TestDelegate m_myevent;
//程序运行的入口
static void Main(string[] args)
{
//申请委托对象事件
TestDelegate m_delegate = new TestDelegate (MyWrite);
m_delegate("This is a delegate object to call the raw
function.");
//绑定委托对象
m_myevent += m_delegate;
m_myevent += new TestDelegate(MyWrite);
m_myevent &#