用C#回调函数写一个求平方的例子
时间: 2024-11-20 13:55:47 浏览: 22
在C#中,我们可以使用委托(Delegate)和事件(Event)机制来实现回调函数的概念,不过这里更常见的是通过lambda表达式或者匿名方法来简化处理。下面是一个简单的例子,我们创建一个`SquareCalculator`类,它有一个静态方法`Calculate`,这个方法接受一个整数和一个回调函数作为参数,当计算完成时,会调用这个回调函数并将结果传递给它。
```csharp
using System;
public class SquareCalculator
{
public static void Calculate(int number, Action<int> callback)
{
int square = number * number;
callback.Invoke(square); // 调用回调函数并传入计算结果
}
}
// 使用示例
Action<int> callbackExample = (result) => Console.WriteLine($"The square of {number} is {result}"); // 回调函数
int number = 5;
SquareCalculator.Calculate(number, callbackExample);
相关问题
用C#的回调函数写一个求平方和的
在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`类型的参数,当遍历列表时,它会将每个数字传递给回调方法,回调方法返回平方值并累加到总和。
请写一个C#的回调函数的例子
在C#中,我们可以使用Action或者Func委托类型的实例作为回调函数。这里是一个简单的例子,假设我们有一个计算平方的任务,我们想在完成后调用一个回调函数:
```csharp
using System;
// 定义一个Action委托,代表接受一个整数并打印结果
public delegate void PrintResult(int result);
// 定义一个方法,使用Callback
public static void SquareAndPrint(int number, PrintResult callback) {
int square = number * number;
Console.WriteLine($"The square of {number} is {square}");
// 调用回调函数
callback(square);
}
// 创建一个回调函数
PrintResult myCallback = (result) => {
Console.WriteLine($"The result has been printed: {result}");
};
// 使用回调函数
SquareAndPrint(5, myCallback);
```
在这个例子中,`SquareAndPrint`方法接收到一个数字和一个`PrintResult`类型的回调函数,然后计算平方并将结果传递给回调函数。
阅读全文