zoukankan      html  css  js  c++  java
  • C#委托与回调的应用体会(二)

    上一次说了C#的委托算法,这次应用到的是回调算法。感觉C#编程委托与回调的结合比较常见。

    回调函数就是把一个方法的传给另外一个方法去执行。在C#有很多回调函数,比如异步操作的时候。这里先举个例子:

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

    namespace TestApp
    {
        /// <summary>
        /// 委托
        /// </summary>
        /// <param name="s1"></param>
        /// <param name="s2"></param>
        /// <returns></returns>
        public delegate string ProcessDelegate(string s1, string s2);

        class Program
        {
            static void Main(string[] args)
            {
                /*  调用方法  */
                Test t = new Test();
                string r1 = t.Process("Text1", "Text2", new ProcessDelegate(t.Process1));
                string r2 = t.Process("Text1", "Text2", new ProcessDelegate(t.Process2));
                string r3 = t.Process("Text1", "Text2", new ProcessDelegate(t.Process3));

                Console.WriteLine(r1);
                Console.WriteLine(r2);
                Console.WriteLine(r3);
            }
        }

        public class Test
        {
            public string Process(string s1,string s2,ProcessDelegate process)
            {
                return process(s1, s2);
            }

            public string Process1(string s1, string s2)
            {
                return s1 + s2;
            }

            public string Process2(string s1, string s2)
            {
                return s1 + Environment.NewLine + s2;
            }

            public string Process3(string s1, string s2)
            {
                return s2 + s1;
            }
        }
    }


    输出结果:
    Text1Text2
    Text1
    Text2
    Text2Text1

    Process方法调用了一个回调函数,当然这里只执行了回调函数。可以看出,可以把任意一个符合这个委托的方法传递进去,意思就是说这部分代码是可变的。而设计上有一个抽离出可变部分代码的原则,这种用法无疑可以用到那种场合了。

  • 相关阅读:
    三(奇数)等分两者中间有间隔,两端没间隔
    网易云音乐基于 Flink + Kafka 的实时数仓建设实践
    【电商知识】关于电商定价的几个策略
    硬核!15张图解Redis为什么这么快
    用户画像实践:神策标签生产引擎架构
    数据产品实战(二):ABTest平台
    R代码|基于特征重要性的特征排序代码
    R代码|K均值算法R语言代码
    一文了解R语言数据分析 ----主成分分析
    全网最全 | MySQL EXPLAIN 完全解读
  • 原文地址:https://www.cnblogs.com/fly0512/p/9784542.html
Copyright © 2011-2022 走看看