参考书目:C#6.0学习笔记——从第一行C#代码到第一个项目设计(作者周家安)P92
学习目的:掌握委托的概念
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Example3_12
{
class Program
{
static void Main(string[] args)
{
//定义三个委托变量
MyDelegate d1, d2, d3;
//d1关联TestMethod1方法
d1 = TestMethod1; //委托类似于C语言中的函数指针
//d1关联TestMethod1方法
d2 = TestMethod2; //d2关联TestMethod2方法
d3 = TestMethod3; //d3关联TestMethod3方法
//分别调用三个委托
Console.WriteLine("分别调用三个委托实例,输出结果如下:");
d1("d1");
d2("d2");
d3("d3");
//定义委托4,先与TestMethod1方法关联
MyDelegate d4 = TestMethod1;
//随后与TestMethod2,TestMethod3方法关联
d4 += TestMethod2;
d4 += TestMethod3;
//调用d4
Console.WriteLine("\n调用d4可以同时调用三个方法,输出结果如下:");
d4("d4");
Console.ReadKey();
}
#region 方法定义,定义3个静态方法
//
static void TestMethod1(string str)
{
Console.WriteLine("这是方法一。参数:{0}", str);
}
static void TestMethod2(string str)
{
Console.WriteLine("这是方法二。参数:{0}", str);
}
static void TestMethod3(string str)
{
Console.WriteLine("这是方法三。参数:{0}", str);
}
#endregion
#region 定义委托
public delegate void MyDelegate(string s);
#endregion
}
}
运行结果如下:
总结:C#的委托可以实现c语言中函数指针的功能。