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();
}
}
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();
}
}
相关文章推荐
- Unity学习 - C#委托的介绍(delegate、Action、Func、predicate)
- C#学习笔记:泛型委托Action<T>和Fun<TResult>
- Unity学习 - C#委托的介绍(delegate、Action、Func、predicate)
- [学习笔记]c#中的委托、事件、Func、Predicate、Observer设计模式以及其他
- 让 C# 委托来帮你简化代码,学习使用 Func、Action 委托
- 学习笔记之Func<T>与Action<T>委托泛型介绍
- C# 四种委托 Delegate Action Func Predicate 的学习
- C# 笔记 Func<TResult> 委托、Action<T> 委托
- C#学习笔记17-Action委托和Func委托
- C#学习笔记:泛型委托Action<T>和Fun<TResult>
- C# 参考:令人惊喜的泛型委托 Predicate/Func/Action
- C#委托之Action、Func与Predicate用法
- 让C#委托来帮你简化代码,学习使用Func、Action委托
- C#基础知识六之委托(delegate、Action、Func、predicate)
- C#解惑2——Delegate,Action,Func,匿名方法,匿名委托,事件(转)
- C#委托的介绍(delegate、Action、Func、predicate)
- c#委托Action和Func
- C#中的委托、事件学习笔记
- C#委托的介绍(delegate、Action、Func、predicate)
- C#学习日记25---匿名方法 与 Func委托 与 lambda表达式