C#之委托学习二

来源:互联网 发布:陈小春版鹿鼎记 知乎 编辑:程序博客网 时间:2024/05/19 13:44
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DelegateDemo1{    class Program    {        /// <summary>        /// 定义一个返回string,没有参数的委托  delegate:委托关键字        /// </summary>        /// <returns></returns>        delegate string GetAString();        /// <summary>        /// 定义一个没有返回值,带一个int类型参数的委托        /// </summary>        /// <param name="x"></param>        delegate void IntMethodInvokder(int x);        /// <summary>        /// 定义一个返回double,带2个参数的委托  定义委托:等同于定义一个新类        /// </summary>        /// <param name="first"></param>        /// <param name="second"></param>        /// <returns></returns>        delegate double TwoLongOp(long first, long second);        delegate double DoubleOp(double x);        static void ProcessAndDisplayNumber(Action<double> action, double value)        {            action(value);        }        static void Main(string[] args)        {            //测试多播委托            Action<double> operations = MathOperations.MultiplyByTwo;            operations += MathOperations.Squre;            //会执行委托的所有方法 MathOperations.MultiplyByTwo、MathOperations.Squre都会被执行 执行的方式是按照顺序执行的            ProcessAndDisplayNumber(operations, 3);            ProcessAndDisplayNumber(operations, 4);            Console.ReadKey();        }    }    class MathOperations    {        public static void MultiplyByTwo(double value)        {            Console.WriteLine("MultiplyByTwo: " + value * 2);        }        public static void Squre(double value)        {            Console.WriteLine("Squre: " + value * value);        }    }}

0 0
原创粉丝点击