【词语】:委托
【注音】:wěi tuō
【释义】:1.将自己的事务嘱托他人代为处理。2.交结,结纳。3.犹依托,依靠。
引用类型
一种引用类型,它是 C++ 函数指针的托管版本。委托可以引用实例和静态(在 Visual Basic 中为 Shared)方法,而函数指针只能引用静态(在 Visual Basic 中为 Shared)方法。
在C#中,委托是一种可以把引用存储为函数的类型。
委托的声明非常类似于函数,但不带函数体,且要使用delegate关键字。
委托的声明指定了一个函数签名,其中包含一个返回类型和参数列表。
在定义了委托后,就可以声明该委托类型的变量。
接着将这个变量初始化为与该委托有相同签名的函数引用。
之后,就可以使用委托变量调用这个函数,就像 该变量是一个函数一样。
委托使用实例
示例1:
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
namespace MyDelegateTest
{
/// <summary>
/// 说明:一个简单的委托示例
/// 作者:fulans
/// </summary>
// 新建一个用以输出消息的委托
public delegate void WriteMessage();
public class WriteToWeb {
public static void StaticWrite()
{
HttpContext.Current.Response.Write("委托调用了一个静态方法。<br />");
}
public void Write()
{
HttpContext.Current.Response.Write("委托调用了一个类实例方法。<br />");
}
}
}
调用
protected void Page_Load(object sender, EventArgs e)
{
// 新建一个委托,回调函数是一个静态方法
WriteMessage wm = new WriteMessage(WriteToWeb.StaticWrite);
WriteToWeb w = new WriteToWeb();
// 新建一个委托并与加到先前建立的委托组成委托链,回调函数是一个类实例方法
wm += new WriteMessage(w.Write);
// 执行委托链上所有的回调函数
wm();
}