如何在这里传递一个Func

时间:2015-02-02 02:30:53

标签: c# func

我们说我有一个类似下面的课程。

public class Circle
{
    private double radius;
    public double GetArea(Func<double, double> operand)
    {
        return operand(radius);
    }
}

我不确定如何在运行时传递Func以进行所需的计算

2 个答案:

答案 0 :(得分:6)

var area = circle.GetArea((r) => 2 * Math.PI * r * r);

似乎有点傻,为什么不呢

public class Circle
{
    public Circle(double radius) { Radius = radius; }
    public double Radius { get; private set; }
    public double Area {
      get {
         return 2 * Math.PI * Radius * Radius;
      }
    }
 }

答案 1 :(得分:1)

我希望答案是不言自明的:

Func<double, double> multiply = (r)=>r*r;

double area = GetArea(multiply, radius);

public double GetArea( Func<double, double> operand , double rad )
{
    return operand( rad );
}