用C#的回调函数写一个求平方和的
时间: 2024-11-20 12:39:39 浏览: 24
在C#中,你可以通过创建一个委托(Delegate)并定义一个接受整数作为输入并返回其平方的方法作为回调,来编写一个求平方和的简单示例。首先,我们定义一个委托:
```csharp
public delegate int SquareCallback(int number);
```
然后我们可以创建一个方法,该方法接收一个整数列表,并使用回调来计算每个数的平方后再累加:
```csharp
public class SquareSumCalculator
{
public int CalculateSquareSum(List<int> numbers, SquareCallback callback)
{
int sum = 0;
foreach (int num in numbers)
{
sum += callback(num); // 调用回调处理平方
}
return sum;
}
}
```
现在,你可以创建一个具体的实现这个委托的类或者方法,例如:
```csharp
class SquareFunction : SquareCallback
{
public override int Invoke(int number)
{
return number * number; // 计算平方
}
}
public static void Main(string[] args)
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
SquareSumCalculator calculator = new SquareSumCalculator();
SquareFunction squareCallback = new SquareFunction();
int result = calculator.CalculateSquareSum(numbers, squareCallback);
Console.WriteLine($"The sum of squares is: {result}");
}
```
在这个例子中,`CalculateSquareSum`方法接受一个数字列表和一个`SquareCallback`类型的参数,当遍历列表时,它会将每个数字传递给回调方法,回调方法返回平方值并累加到总和。
阅读全文