代表(delegate)(转)
它是C#语言里面的函数指针,代表可以指向某一个函数,在运行的时候调用这个函数的实现。下面来看看它的实现步骤:
声明一个delegate对象。
实现和delegate具有相同参数和返回值的函数实现(可以是静态和非静态的)。
产生一个delegate对象的时候,把你刚刚实现的函数作为参数传给他的构造函数。
请看下面例子:
using System;
using System.Collections.Generic;
using System.Text;
namespace UsingDelegate
{
public delegate void MyDelegate(string mydelegate);//声明一个delegate对象
public class TestClass
{
//实现有相同参数和返回值的函数
public void HelloDelegate(string mydelegate)
{
Console.WriteLine(mydelegate);
}
//实现有相同参数和返回值的静态函数
public static void HelloStaticDelegate(string mystaticdelegate)
{
Console.WriteLine(mystaticdelegate);
}
}
class Program
{
static void Main(string[] args)
{
TestClass testClass = new TestClass();
MyDelegate mydelegate = new MyDelegate(testClass.HelloDelegate);//产生delegate对象
mydelegate("Hello delegate");//调用
MyDelegate myStaticDelegate = new MyDelegate(TestClass.HelloStaticDelegate);//产生delegate对象
myStaticDelegate("Hello static delegate");//调用
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
using System;
namespace MinT
{
class MinTest
{
public delegate void getName();
public getName get_name;
public MinTest( getName get_name )
{
this.get_name = get_name;
}
}
class Provide
{
public void PrintName()
{
Console.WriteLine("my name is vlisa");
}
}
class TheApp
{
static void Main( )
{
Provide prde = new Provide();
MinTest mintest = new MinTest(prde.PrintName);
mintest.get_name();
}
}
}
//////////////
//my name is vlisa
//////////////////////////////////////////////////////////////
浙公网安备 33010602011771号