松本大叔说:要理解闭包,从函数指针开始!
1.1 函数指针及其作用
原文中使用了C语言的函数对象,这里我们主要从.NET平台来说。在.NET中,委托这个概念对C++程序员来说并不陌生,因为它和C++中的函数指针非常类似,很多码农也喜欢称委托为安全的函数指针。无论这一说法是否正确,委托的的确确实现了和函数指针类似的功能,那就是提供了程序回调指定方法的机制。
下面的代码展示了委托的基本使用:
// 定义的一个委托 public delegate void TestDelegate(int i); public class Program { public static void Main(string[] args) { // 定义委托实例 TestDelegate td = new TestDelegate(PrintMessage); // 调用委托方法 td(0); td(1); Console.ReadKey(); } public static void PrintMessage(int i) { Console.WriteLine("这是第{0}个方法!", i.ToString()); } }