如何正确地编写这段代码

本文关键字:代码 段代码 正确地 | 更新日期: 2023-09-27 18:10:13

new to c#…我得到了这个问题,得到了答案,但我很困惑,答案应该写在哪里(主要或在类本身)

问题: 给定下列类的实例循环:

public sealed class Circle 
{
  private double radius;
  public double Calculate(Func<double, double> op) {
    return op(radius);
  }
}

编写计算圆的周长的代码,而不修改circle类本身。

答案是:

circle.Calculate(r => 2 * Math.PI * r);

在这种情况下=>到底是什么意思

如何正确地编写这段代码

与编写匿名委托相同

circle.Calculate(
    delegate (double r)
    {
        return 2 * Math.PI * r;
    }
);

所以,重要的事情先说。我不知道您是否熟悉Java或任何其他"通用"编程语言,但是如果您想执行这段代码,您必须有一个main方法。你可以在你的Circle类中做,或者你可以创建一个Main类。

如果您选择创建另一个类,它将是这样的:

public class MainClass
{
    static void Main(string[] args)
    {
        // your code goes here
    }
}

此外,重要的是要阅读有关Lambda表达式: http://www.codeproject.com/Tips/298963/Understand-Lambda-Expressions-in-minutes(这=>你要问的是什么获得Lambda表达式的参数并将其应用到函数中。所以,在你的例子中,无论r的值是什么,函数将返回2倍PI (r的值,你提供的)。

希望有帮助!

试试这个:

public sealed class Circle
{
    private double radius;
    public double Calculate(Func<double, double> op)
    {
        return op(radius);
    }
}
class Program
{
    public static double op(double radius)
    {
        return 2 * radius * Math.PI;
    }
    static void Main()
    {
        Circle Object = new Circle();
        // Calculate the circumference based on the radius of the object and the op function.
        Console.WriteLine("Circumference of the Circle is: " + Object.Calculate(op));
    }    
}