如何正确地编写这段代码
本文关键字:代码 段代码 正确地 | 更新日期: 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));
}
}