C#委托基础(一)

委托和其委托的方法必须具有相同的签名
签名相同: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);
        }
    }

 

 

 

 

posted on 2012-06-20 08:17  zhuhai  阅读(138)  评论(0)    收藏  举报

导航

我的百度空间