C#中代表
(摘自http://www.cnblogs.com/cuihongyu3503319/archive/2007/04/29/732376.html)
代表(delegate):
它是C#语言里面的函数指针,代表可以指向某一个函数,在运行的时候调用这个函数的实现。下面来看看它的实现步骤:
- 声明一个delegate对象。
- 实现和delegate具有相同参数和返回值的函数实现(可以是静态和非静态的)。
- 产生一个delegate对象的时候,把你刚刚实现的函数作为参数传给他的构造函数。
看下面的例子:
using System;
using System.Collections.Generic;
using System.Text;
namespace @delegate
{
public delegate void Mydelegate(string mydelegate); //声明一个我的代表(第一步)
class Program
{ //实现一个与代表具有相同参数和返回值的函数(第二步)
public void HelloDelegate(string mydelegate)
{
Console.WriteLine(mydelegate);
}
//实现一个与代表具有相同参数和返回值的静态函数(第二步);注意与上者的区别
public static void HelloStasticDelegate(string mydelegate)
{
Console.WriteLine(mydelegate);
Console.Read();
}
static void Main(string[] args) //第三步
{ //非静态成员方法的调用
Program i = new Program();
Mydelegate d = new Mydelegate(i.HelloDelegate); //产生代表d,指向的是函数HelloDegegate
d("Hello delegate"); //调用
//静态成员方法的调用
Mydelegate dd = new Mydelegate(Program.HelloStasticDelegate);
dd("Hello static delegate");
}
}
}

浙公网安备 33010602011771号