我们说我有一个类似下面的课程。
public class Circle
{
private double radius;
public double GetArea(Func<double, double> operand)
{
return operand(radius);
}
}
我不确定如何在运行时传递Func以进行所需的计算
答案 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 );
}