C#委托基础1——委托基础

来源:互联网 发布:淘宝商品下架后再上架 编辑:程序博客网 时间:2024/06/13 11:13

 

C#委托基础系列原于2011年2月份发表在我的新浪博客中,现在将其般至本博客。

委托和其委托的方法必须具有相同的签名。签名相同:1.参数类型相同 2.参数数量相同 3.返回值一致

 

例一

class Program{        public delegate int MathMethod(int x, int y);               public int Add(int a, int b)        {            return a + b;        }        static void Main(string[] args)        {            MathMethod mm;            Program p = new Program();            mm = p.Add;// 相当于一个方法的容器            Console.WriteLine("计算结果为{0}",mm(7,6));            Console.ReadLine();        }}

例二

class Program{               public delegate double MathMethod(double x, double y);        double Add(double a, double b)        {            return a + b;        }        double Subtract(double a, double b)        {            return a + b;        }        double Multiply(double a, double b)        {            return a * b;        }        double Divide(double a, double b)        {            return a / b;        }        void DoCalculate(MathMethod mm)        {            Console.WriteLine("请输入第一个数");            double x = Convert.ToDouble(Console.ReadLine());            Console.WriteLine("请输入第二个数");            double y = Convert.ToDouble(Console.ReadLine());            Console.WriteLine("结果{0}",mm(x, y));            Console.ReadLine();                   }        static void Main(string[] args)        {            MathMethod mm;            Program p = new Program();            mm = p.Divide;            p.DoCalculate(mm);        }}


本文参考自金旭亮老师的《.NET 4.0面向对象编程漫谈》有关代理的内容