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;
        }
    
  • 相关阅读:
    Java集合框架
    数字翻转
    Servlet的一些细节
    tomcat9配置https
    JavaWeb_打包web应用war
    JavaWeb_tomcat设置默认应用
    JavaWeb_增强for循环
    JavaWeb_静态导入、自动拆箱/装箱
    JavaWeb_泛型(Generic)
    54字符流中第一个不重复的字符
  • 原文地址:https://www.cnblogs.com/yinchh/p/10498753.html
Copyright © 2011-2022 走看看