委托基础篇

---恢复内容开始---

1.委托是一种安全封装方法的类型,可以将方法作为方法的参数。

2.委托方法的参数个数、顺序、类型和返回值必须跟定义的委托方法一样,参数名可以不一致

1、C# 定义一个完整委托:

delegate string SayMessage(string msg);
static string SayHello(string Name)
{
  
return string.Format("Hello {0}", Name);
}
static void Main(string[] args)
{
   SayMessage say
= new SayMessage(SayHello);
   Console.WriteLine(say(
"委托"));
   Console.ReadKey();
}

 

2、C#2.0后出现了匿名方法,可以将委托方法省略掉,直接给委托传递一个匿名方法,当然也要去掉New这个动作。

delegate string SayMessage(string msg);
static void Main(string[] args)
{

SayMessage say=delegate(string Name)

{
  
return string.Format("Hello {0}", Name);
};

   
   Console.WriteLine(say("委托"));
   Console.ReadKey();
}

 

3、 聪明的人们总是想使用更少的代码达到相同的效果。因此C#3.0 之后出现了 Lambda表达式、Action委托、Func 委托

 Lambda表达式:匿名方法的升级版,可以简化匿名方法的写法。写法 (形参列表)=>{ 表达式 OR 函数体 }

delegate string SayMessage(string msg);
static void Main(string[] args)
{

SayHello say=(Name)=>

{
  
return string.Format("Hello {0}", Name);
};

   
   Console.WriteLine(say("委托"));
   Console.ReadKey();
}

 

 

---恢复内容结束---

posted @ 2013-02-27 22:46  foxing  阅读(137)  评论(0)    收藏  举报