系统内置委托:Func/Action

lSystem.Func 代表有返回类型的委托

lpublic delegate TResult  Func<out TResult>();

lpublic delegate TResult  Func<in T, out TResult>(T arg);

l......

l注:输入泛型参数-in 最多16个,输出泛型参数 -out 只有一个。

lSystem.Action 代表无返回类型的委托

lpublic delegate void Action<in T>(T obj);    //list.Foreach

lpublic delegate void Action<in T1, in T2>(T1 arg1, T2 arg2);

l......

l注:参数最多16个

lSystem.Predicate<T> 代表返回bool类型的委托   - 用作执行表达式

lpublic delegate bool Predicate<in T>(T obj);  //list.Find

lSystem.Comparison<T> 代表返回int类型的委托  - 用作比较两个参数的大小

lpublic delegate int Comparison<in T>(T x, T y); //list.Sort

时间: 2024-11-29 08:57:42

系统内置委托:Func/Action的相关文章

C#中常用的系统内置委托

在公共语言运行时(CLR)环境中系统为我们内置了一些常用的委托,包括Action类的委托.Func类的委托.Predicate<T>委托.Comparison<T>委托等等.以上这些委托的命名空间都是System,所属程序集都是 mscorlib.dll,今天我就来讲一讲这些委托的使用方法. 就像我们自己已定义好的一样,要实现某些功能,我们可以直接利用系统内置委托,实例化它们,而不必显式定义一个新委托并将命名方法分配给该委托.如: public static void Test()

C#中常见的系统内置委托用法详解(抄录)

C#中常见的系统内置委托 Action类.Func类.Predicate<T>.Comparison<T>委托 Action类的委托 Action委托 封装一个方法,该方法不具有参数并且不返回值 Action<T>委托 封装一个方法,该方法只有一个参数并且不返回值 Action<T1,T2>委托 封装一个方法,该方法具有两个参数并且不返回值 static void Main(string[] args) { #region Action<T>委托

.NET (二)委托第二讲:内置委托Func

在上一章节中,我们自己声明了一个委托: public delegate bool Cal(int num); 接受int参数,返回bool类型,目的是过滤集合中的 奇数 或者 偶数. .NET 为我们内置了一个泛型委托,用于处理这种情况,省去了自定义的麻烦. public delegate TResult Func<in T, out TResult>(T arg); Func是.NET定义的委托,接受任何参数,并返回自定义类型结果. 我们可以将代码修改为:public static void

系统内置的泛型委托

#region 系统内置的泛型委托 //只要是Action委托都是无返回值的. ////1.存储无参数无返回值的方法 //Action md = () => { Console.WriteLine("无参数无返回值."); }; //md(); //Console.Read(); ////2.有一个参数没有返回值 //Action<string, int> md = (s, i) => { Console.WriteLine(s + " "

C#中常见的委托(Func委托、Action委托、Predicate委托)

今天我要说的是C#中的三种委托方式:Func委托,Action委托,Predicate委托以及这三种委托的常见使用场景. Func,Action,Predicate全面解析 首先来说明Func委托,通过MSDN我们可以了解到,Func委托有如下的5种类型: (1) *delegate TResult Func<TResult>(); (2)*delegate TResult Func<T1,TResult>(T1 arg1); (3) *delegate TResult Func&

C#系统委托之Action And Func

转自http://www.cnblogs.com/LittleFeiHu/p/4035166.html Action:封装一个方法,该方法不具有参数并且不返回值 public delegate void Action() Action<T>:Action的泛型实现了1到16个传入参数的定义,但是仍然没有返回值,得出结论Action不支持返回值,如果需要返回值请使用另一个系统委托Func public delegate void Action<in T>(T obj) ... pub

委托, 泛型委托,Func&lt;T&gt;和Action&lt;T&gt;

使用委托来做一些事情,大致思路是: 1.定义声明一个委托,规定输入参数和输出类型.2.写几个符合委托定义的方法.3.把方法列表赋值给委托4.执行委托 internal delegate int MyDelegate(); class Program { static void Main(string[] args) { MyDelegate d = ReturnOne; d += ReturnTwo; foreach (int i in GetAllReturnVals(d)) { Consol

.NET : Func委托和Action委托

上一篇我们讲到了如何在ASP.NET页面中实现异步任务.我们来回顾一下里面一个特殊的类型:LongTimeTask public class LongTimeTask{    public string Result = string.Empty;    public HelloWorldHandler handler; public delegate string HelloWorldHandler();    public string HelloWorld()    {        Th

Func 委托 和 Action 委托 初步谈论

继上篇EventHandler之后,继续填坑,简单了解下Func<TResult> 委托 和 Action 委托. msdn对于两者的解释: Func<TResult>:封装一个不具有参数但却返回 TResult 参数指定的类型值的方法. Action:封装一个方法,该方法不具有参数并且不返回值. 两者的区别在于:有无返回值. 至于 Func<T,TResult>.Func<T1,T2,TResult>.... Action<T>.Action&