Func<T,TResult>代理

.NET平台已经发生了很多变化,最近决定好好的系统的学习一下了,开发做了这么多年,老实说很多时候都是在吃老本,这样下去不行的。。。

今天学习的是Func<T,TResult>,它是新的委托申明方式,较之前的简洁多了。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BaiduTranslate
{
    class LambdaTest
    {
        delegate int InterDelegate(int a);
        /// <summary>
        /// 传统方法
        /// </summary>
        public void Tradition()
        {
            InterDelegate idelegate = AA;
            idelegate += BB;
            idelegate(10);
        }
        /// <summary>
        /// 新方法
        /// </summary>
        public void New()
        {
            Func<int, int> idelegate = AA;
            idelegate += BB;
            idelegate(10);
        }
        /// <summary>
        /// 遍历执行注册列表
        /// </summary>
        public void Test()
        {
            Tradition();
            Console.WriteLine("-------------分割线-----------");
            New();
        }

        private int AA(int c)
        {
            Console.WriteLine("AA method:{0}", c);
            return c;
        }

        private int BB(int c)
        {
            Console.WriteLine("BB method:{0}", c);
            return c;
        }
    }
}

运行结果是一样一样的。

时间: 2024-10-19 13:14:59

Func<T,TResult>代理的相关文章

Expression&lt;Func&lt;T,TResult&gt;&gt;和Func&lt;T,TResult&gt; 与AOP与WCF

1>>Expression<Func<T,TResult>>和Func<T,TResult>http://www.cnblogs.com/xcsn/p/4520081.htmlhttp://www.cxyclub.cn/n/63037/http://q.cnblogs.com/q/37952/2>>AOP与WCFhttp://www.oschina.net/question/2245602_178068?sort=timehttp://www.c

Expression&lt;Func&lt;T,TResult&gt;&gt;和Func&lt;T,TResult&gt;

1.Expression<Func<T,TResult>>是表达式 //使用LambdaExpression构建表达式树 Expression<Func<int, int, int, int>> expr = (x, y, z) => (x + y) / z; Console.WriteLine(expr.Compile()(1, 2, 3)); https://msdn.microsoft.com/zh-cn/library/system.linq.

Func&lt;T,TResult&gt;泛型委托

描述: 封装一个具有一个参数并返回TResult参数指定的类型值的方法. 语法: public delegate TResult Func<T,TResult>(T arg); 参数类型: T:此委托封装的方法的参数类型. TResult:此委托封装的方法的返回值类型. 参数: arg:委托封装的方法的参数 返回值:此委托封装的方法的返回值 备注: 可以使用此委托构造一个能以参数形式传递的方法,而不用显式声明自定义的委托.该方法必须与此委托的方法签名想对应. 也就是说,封装的方法必须具有一个通

C#中Func&lt;T,TResult&gt;的用法和Lambda表达式

在C#3.0中引用了Limbda表达式,Limbda表达式实际上就是一个方法,只不过该方法是匿名方法(即没有名称的方法)代码片段: Func<int,string,string> t=(int x, string b) => (x.ToString() + b);就等于如下: private string deletegate TestString(int x string b );//定义一个委托,返回值为string类型 private string test(int x strin

C# Func&lt;T,TResult&gt;

using System; namespace FuncDemo { internal class Program { private static void Main() { //类似委托功能 Func<InputArgs, Result> func = TsetFunction; Console.WriteLine("第一种方式:"); Console.WriteLine(func(new InputArgs("zhangqs008", "

浅谈C#中常见的委托&lt;Func,Action,Predicate&gt;(转)

http://www.cnblogs.com/JimmyZhang/archive/2007/09/23/903360.html 一提到委托,浮现在我们脑海中的大概是听的最多的就是类似C++的函数指针吧,呵呵,至少我的第一个反应是这样的. 关于委托的定义和使用,已经有诸多的人讲解过,并且讲解细致入微,尤其是张子阳的那一篇.我就不用多废话了. 今天我要说的是C#中的三种委托方式:Func委托,Action委托,Predicate委托以及这三种委托的常见使用场景. Func,Action,Predi

[C#] 委托Action和Func

一.说明 一般我们定义委托都是有如下两步: public delegate void MyDelegate(string name);//定义委托public MyDelegate myDelegate; //使用委托 .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-col

委托之Action和Func区别

一.说明 一般我们定义委托都是有如下两步: public delegate void MyDelegate(string name);//定义委托 public MyDelegate myDelegate; //使用委托 但.Net也提供了定义好的委托,我们可以直接使用. 二.定义 System.Action 无返回值 Action: public delegate void Action (); Action< T >: public delegate void Action< T &

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&