using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace Csharp
{
public delegate double ProcessResults(double x,double y);
public class Processor
{
public Processor(double factor)
{
this.factor = factor;
}
public double Compute(double x, double y)
{
double result = (x + y) * factor;
Console.WriteLine("InstanceResult:{0}", result);
return result;
}
public static double StaticCompute(double x, double y)
{
double result = (x + y) * 0.5;
Console.WriteLine("StaticResult:{0}",result);
return result;
}
private double factor;
}
class Program
{
static void Main(string[] args)
{
Processor proc1 = new Processor(0.75);
Processor proc2 = new Processor(0.83);
ProcessResults delegate1 = new ProcessResults(proc1.Compute);
ProcessResults delegate2 = new ProcessResults(proc2.Compute);
ProcessResults delegate3 = Processor.StaticCompute;
double combined = delegate1(4, 5) +
delegate2(6, 2) +
delegate3(5, 2);
Console.WriteLine("Output: {0}",combined);
}
}
}
C#委托,delegate
最新推荐文章于 2018-06-28 11:31:21 发布