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;
        }
    }
}

运行结果是一样一样的。

原文地址:https://www.cnblogs.com/yyq745201/p/4648221.html