本帖最后由 面朝大海,春暖 于 2013-10-13 09:03 编辑
using System;
using System.Collections.Generic; using System.Text;
namespace Delegate {
//定义委托,它定义了可以代表的方法的类型
public delegate void GreetingDelegate(string name); class Program {
private static void EnglishGreeting(string name)
{ Console.WriteLine("Morning, " + name); }
private static void ChineseGreeting(string name) { Console.WriteLine("早上好, " + name); }
//注意此方法,它接受一个GreetingDelegate类型的方法作为参数
private static void GreetPeople(string name, GreetingDelegate MakeGreeting) {
MakeGreeting(name); }
static void Main(string[] args) {
GreetPeople("Jimmy Zhang", EnglishGreeting); GreetPeople("张子阳", ChineseGreeting); Console.ReadKey(); } } }
输出如下: Morning, Jimmy Zhang 早上好, 张子阳 上述代码红色注释部分说GreetPeople方法接受一个GreetingDelegate类型的方法作为参数,其实我更觉得是传递的是方法名,比如EnglishGreeting通过形参MakeGreeting传进去,整好就完成了一个方法调用。。求解惑。。
|