zoukankan      html  css  js  c++  java
  • C#方法回调

    通过接口

        class Program
        {
            static void Main1(string[] args)
            {
                var controller = new Controller(new CallBack());
                controller.Execute();
            }
        }
    
        public interface ICallBack
        {
            void Run();
        }
        public class CallBack : ICallBack
        {
            public void Run()
            {
                Console.WriteLine(DateTime.Now);
            }
        }
        public class Controller
        {
            private ICallBack _callBack;
            public Controller(ICallBack callBack)
            {
                this._callBack = callBack;
            }
            public void Execute()
            {
                Console.WriteLine("点击任何键返回当前时间,ESC退出");
                while (Console.ReadKey(true).Key != ConsoleKey.Escape)
                {
                    _callBack.Run();
                }
            }
        }
    

    通过委托

        public class DelegateCallback
        {
            static void Main(string[] args)
            {
                var controller = new Controller(new Action(() => Console.WriteLine(DateTime.Now)));
                //controller.AddEvent(() => Console.WriteLine(DateTime.Today));
                controller.Execute();
            }
        }
        public class Controller
        {
            private Action _showTime;
            public Controller(Action showTime)
            {
                this._showTime += showTime;
            }
            public void AddEvent(Action act)
            {
                this._showTime += act;
            }
            public void Execute()
            {
                Console.WriteLine("点击任何键返回当前时间,ESC退出");
                while (Console.ReadKey(true).Key != ConsoleKey.Escape)
                {
                    _showTime();
                }
            }
        }
    

    定时回调

        public class TimeCallback
        {
            static void Main(string[] args)
            {
                var ti = new TaskInfo();
                var tm = new Timer(state =>
                {
                    TaskInfo info = state as TaskInfo;
                    info.count++;
                    Console.WriteLine(info.count);
                }, ti, 0, 1000);
                Console.ReadKey();
            }
        }
        public class TaskInfo
        {
            public int count = 0;
        }
    
  • 相关阅读:
    JS系列:三元运算符与循环
    浏览器解析js和type判断数据类型
    JS系列:数据类型详细讲解
    JS系列:编程语言
    京东校招面试汇总
    有关axios的request与response拦截
    正则表达式 判断内容是否为合法的url
    H5 小代码(实时更新)
    H5 回到顶部按钮
    图片压缩(js压缩,底部有vue压缩图片依赖使用的教程链接)
  • 原文地址:https://www.cnblogs.com/yinchh/p/10498753.html
Copyright © 2011-2022 走看看