c#委托Action和Func
2012-11-07 16:34
351 查看
今天才知道原来c#中有Action和Func两个委托可以简化委托的定义过程,有了这两个类就不用像传统定义委托那样使用Delegate定义。
Action:
Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> 方法名
使用Action定义的委托,是没有返回值的,定义的委托函数参数可以为0也可以多个,最多可以有16个参数如
例子:
Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,Tresult>
使用Action定义的委托,是有返回值的,定义的委托函数参数可以为0也可以多个,最多可以有16个参数,Func无论定义多少个参数类型,最后一个参数类型是返回值类型
Action:
Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> 方法名
使用Action定义的委托,是没有返回值的,定义的委托函数参数可以为0也可以多个,最多可以有16个参数如
例子:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class test { public void show() { Console.WriteLine("没参数的委托"); } public void show1(int a) { Console.WriteLine("带一个参数{0}的委托", a); } } class Program { static void Main(string[] args) { test s = new test(); Action test; test = s.show; Action<int> test2; test2 = s.show1; test(); test2(2); Console.ReadLine(); } } }Func:
Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,Tresult>
使用Action定义的委托,是有返回值的,定义的委托函数参数可以为0也可以多个,最多可以有16个参数,Func无论定义多少个参数类型,最后一个参数类型是返回值类型
namespace ConsoleApplication1 { class test { public int show() { return 0; } public string show1(string a) { return a; } } class Program { static void Main(string[] args) { test s = new test(); Func<int> test; test = s.show; Func<string, string> test2; test2 = s.show1; Console.WriteLine(test.Invoke());//Invoke()其实跟test()作用一样,这样使用能够比较容易区分是方法还是委托 Console.WriteLine(test2test.Invoke("字符串")); Console.ReadLine(); } } }
相关文章推荐
- C#委托的介绍(delegate、Action、Func、predicate)
- C#.NET的Linq查询、lambda、委托:Func<>和Action
- c# action<> func<> 这2个委托怎么用和理解
- C# 学习笔记_委托(二)Action与Func
- C#委托类型-(Func,Action,Predicate,lambda)
- C#委托的介绍(delegate、Action、Func、predicate)
- C#委托的介绍(delegate、Action、Func、predicate)(转)
- C#委托Action、Action<T>、Func<T>、Predicate<T>
- 为LINQ服务的C#新特性总结篇---扩展方法,匿名委托,lambda表达式,Action委托,Func委托,Linq中的order by,top和sum函数
- C# 委托应用总结(委托,Delegate,Action,Func,predicate)
- C#委托的介绍(delegate、Action、Func、predicate)
- C# Action<T>、Func<T>、Predicate<T>委托的区别、用法
- C# 笔记 Func<TResult> 委托、Action<T> 委托
- C#基础:委托之Action<T>和Func<T>的用法
- C#委托的介绍(delegate、Action、Func、predicate)
- 浅谈C#中常见的委托<Func,Action,Predicate>(转)
- C#委托的介绍(delegate、Action、Func、predicate)
- C#委托的介绍(delegate、Action、Func、predicate)
- C#委托Action、Action<T>、Func<T>、Predicate<T>
- C#委托的介绍(delegate、Action、Func、predicate)