简单的委托示例

来源:互联网 发布:台湾清华大学知乎 编辑:程序博客网 时间:2024/05/01 01:04

定义一个类,有两个静态方法,对double类型的值执行两个操作,然后使用委托调用这些方法

class MathsOperations

{

     public static double MultiptyByTwo(double value)

    {

        return value*2;

    }

    public static double Square(double value)

    {

          return value*value;

    }

}



using System;

namespace CSharp.Delegates

{

    delegate double DoubleOp(double x);

    class Program

    {

         static void Main()

         {

               DoubleOp  [] operations =

                  {

                          MathsOperations.MutiplyByTwo,

                          MathsOperations.Square

                  }

                for(int i=0;i<operations.Length;i++)

                {

                       Console.WriteLine("Using opertions[{0}]:",i);

                       ProcessAndDisplayNumber(opertions[i],2.0);

                       ProcessAndDisplayNumber(opertions[i],7.94);

                       ProcessAndDispayNumber(opertions[i],1.414);

                       Console.WriteLine();

                }

         }


         static void ProcessAndDisplayNumber(DoubleOp action,double value)

        {

                   double result=action(value);

                    Console.WriteLine("value is{0},result of opertion is {1}",value,action );

         }


    }

}