您的位置:首页 > 其它

委托的声明与实例化使用

2009-11-13 20:53 211 查看
系统访问数据或调用方法有两种操作方式:一种是通过名称访问或调用,另一种是通过所在的内存地址来访问调用。为了系统的安全与稳定,NET Framework的CLR库不允许程序通过指针来直接操作内存中数据或方法,而是通过托管机制 来访问内存中数据或调用内存中的方法。委托就是C#提供的一种以托管机制调用方法的特殊数据类型

,其作用于房屋租凭中介机构类似。

委托声明

委托是一种引用型的数据类型,在C#中使用关键字delegate声明委托。声明委托的一般形式是:

[访问修饰符] delegate 返回值类型 委托名称 (参数列表)


委托实例化

因为委托是一种特殊的数据类型,因此必须实例化之后才能用来引用方法,实例化委托的一般形式如下:

委托类型(名称) 委托变量名 = new 委托型构造函数(委托要引用的方法名)

using System;
public delegate int Caculate(int x,int y); //声明委托
public class CaculateOfNumber
{
public Caculate handler; //声明一个委托的字段
public int Product(int x, int y)
{
return x * y;
}
public int Average(int x, int y)
{
return (x + y) / 2;
}
}
public class Test
{
static void Main()
{
int a = 5, b = 6;
CaculateOfNumber cn = new CaculateOfNumber();
cn.handler = new Caculate(cn.Product); // 初始化委托型字段
Console.WriteLine("{0}与{1}的乘积为{2}", a, b, cn.handler(a, b));
cn.handler = new Caculate(cn.Average);
Console.WriteLine("{0}与{1}的平均值为{2}", a, b, cn.handler(a, b));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐