C# 委托

来源:互联网 发布:人造暖男网络电影 编辑:程序博客网 时间:2024/05/01 07:57

简单的委托示例:

using System;
using System.Collections.Generic;
using System.Text;

namespace DelegateTest
{
    class MathsOperation
    {
        public static double MultiplybyTwo(double value)
        {
            return value * 2;
        }
        public static double Square(double value)
        {
            return value * value;
        }
    }
}

using System;
using System.Collections.Generic;
using System.Text;

namespace DelegateTest
{
    delegate double DoubleOp(double x);
    class Program
    {
        static void Main(string[] args)
        {
            DoubleOp[] operations =
                {
                    new DoubleOp( MathsOperation.MultiplybyTwo ),
                    new DoubleOp( MathsOperation.Square )
                };
            for( int i=0;i<operations.Length;i++ )
            {
                Console.WriteLine( "Using operations[{0}]:",i );
                ProcessAndDisplayNumber( operations[i],2.0 );
                ProcessAndDisplayNumber( operations[i],7.94 );
                ProcessAndDisplayNumber( operations[i],1.414 );
                Console.WriteLine();
            }
            Console.Read();
        }
        static void ProcessAndDisplayNumber(DoubleOp action, double value)
        {
            double result = action(value);
            Console.WriteLine("Value is {0}, result of operation is {1}", value, result);
        }
    }
}

原创粉丝点击