委托基础篇
---恢复内容开始---
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();
}
---恢复内容结束---

浙公网安备 33010602011771号