委托
- 理解:委托就是将一个方法当作参数传递给另一个方法。
- 关键字有返回值类型,和参数类型,委托只可以给返回值类型和参数类型一样的方法委托。
namespace 委托
{
//声明了一个委托
public delegate int GetMax(string name, int age);
class Program
{
static void Main(string[] args)
{
GetMax get = new GetMax(GetMax2);//实例化这个委托,将GetMax这个方法传给委托。
get("这个参数和GetMax一样", 20);
Console.ReadKey();
//这样就完成了一个方法的委托。
}
//声明了一个静态方法,返回值类型和参数类型不一样,所以不能将这个方法传给委托
static void GetMax1()
{
Console.WriteLine("调用不到");
}
//这个方法的返回值类型和参数类型和声明的委托一样,可以将这个方法传给委托。
static int GetMax2(string name,int age)
{
Console.WriteLine("可以调用这个方法");
return 0;
}
}
}
1、Action简介:
C#中与预定义了一个委托类型Action
它默认可以指向一个没有返回值,没有参数的方法。
- Action的使用
static void printString()
{
Console.WriteLine("Hello World");
}
static void Main(String[] args)
{
Action a = printString;
a();
// 输出结果 Hello World
}
2.Func委托
1.简介
Func 也是C#预定义的委托, 且可以指向带有一个返回值的方法,传递0-16个参数。
与Action区别:Action 不能指向有返回值的方法 , 不能有返回值 。Func 可以指向有一个返回值的方法, 且必须有返回值。
网友评论