LINQ-委托
委托
如果我们要把方法当作参数来传递的话,就需要委托;
委托是一个类型,这个类型可以赋值一个方法的引用;
声明委托类型 delegate
在C#中使用一个类分为两个阶段
- 定义这个类,告诉编译器这个类由什么字段和方法组成的,
- 使用这个类实例化的对象
使用委托的两个阶段
- 定义委托,告诉编译器 委托可以指向哪个类型的方法
- 创建 该委托实例
//定义委托
delegate void D1();
使用委托
- 执行D1所指向的方法
static void Main(string[] args)
{
D1 d1 = F1;
d1();
}
static void F1()
{
Console.WriteLine("我是方法F1");
}
//定义委托
public delegate void D1();
Action委托和Func委托
系统内置的委托类型
- Action 委托引用的是无返回值类型的方法,T表示方法参数
Action <参数,参数> action = 方法
static void Main(string[] args)
{
Action <int,int> action= num;
action(5,5);
}
static void num(int i,int n)
{
Console.WriteLine("和:"+(i + n));
}
- Func引用了一个带有返回值的方法,它可以传递0或者多到16个参数类型,和一个返回类型
Func<参数,返回值类型> func = 方法;
static void Main(string[] args)
{
Func<string,string> func = show;
Console.WriteLine(func("刘波"));
}
static string show(string name)
{
return name + ",你好";
}