您的位置:首页 > 编程语言 > C#

C# 学习笔记_委托(二)Action与Func

2018-02-27 11:37 246 查看
Action的使用
class Program
{
static void PrintString()
{
Console.WriteLine("Hello Word");
}
static void PrintInt(int i)
{
Console.WriteLine(i);
}
static void PrintString(string str)
{
Console.WriteLine(str);
}

static void PrintDoubleInt(int i1,int i2)
{
Console.WriteLine(i1+i2);
}
static void Main(string[] args)
{

//Action a = PrintString; //action 是系统内置(预定义)的一个委托类型,它可以指向一个没有返回值,没有参数的方法

//Action<int> a= PrintInt;//定义了一个委托类型,这个类型可以只想一个没有返回值,有一个int参数的方法

//Action<string> a = PrintString;//定义了一个委托类型,这个类型 可以只想一个没有返回值,有一个string参数的方法,在这里系统会自动寻找匹配的方法

Action<int, int> a = PrintDoubleInt;
a(34, 23);
Console.ReadKey();
//Action 最大可以有16个参数
//action 可以后面通过泛型去指定action指向的方法的多个参数的类型,参数的类型跟action后面声明的委托类型是对应着的
}
}

Func的使用
class Program
{
static int Test1()
{
return 1;
}
static int Test2(string str)
{
Console.WriteLine(str);
return 100;
}
static int Test3(int i, int j)
{
return i + j;
}
static void Main(string[] args)
{
//Func<int> a =Test1; // func中 的泛型类型指定的是方法的返回类型值
//Console.WriteLine(a());
//Console.ReadKey();

// Func<string, int> a = Test2;//func 后面可以跟很多类型,最后一个类型是返回值类型,前面的类型是参数类型,参数类型必须跟指向的方法的参数类型按照顺数对应

Func<int, int, int> a = Test3;
int res= a(1, 5);
Console.WriteLine(res);
Console.ReadKey();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: