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传进去,整好就完成了一个方法调用。。求解惑。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |