1.
我们对委托做一个总结:
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。
//正确理解委托的列子
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类型的参数,该参数是返回值为空,参数为string类型的方法
private
static
void
GreetPeople(
string
name, GreetingDelegate MakeGreeting)
{
MakeGreeting(name);
}
static
void
Main(
string
[] args)
{
GreetPeople(
"Jimmy Zhang"
, EnglishGreeting);
GreetPeople(
"张子阳"
, ChineseGreeting);
Console.ReadKey();
}
}
}
详见:http://baike.baidu.com/link?url=fQFujDwVGpnW8T_aOMcskiZiP1YTQYnq-j9p7O_fWreQsRLUJ9ukkdlbyAkgB6vCh2qZUil4c7Ox8BNhrCrT4a#7