如何在 C# 中将方法作为参数传递给另一个方法?
大家好!我刚开始学习 C#,遇到了一个问题。我有几个方法,它们做的事情几乎相同,但逻辑上略有不同。例如,我想对数字数组应用某种操作:要么将所有元素相加,要么相乘,要么找到最大值。我不想写三个独立的循环,而是想写一个通用的方法,它接受一个“动作”(另一个方法)并将其应用于数组。
我尝试这样做:
```csharp
public void ProcessArray(int[] numbers, ??? operation)
{
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = operation(numbers[i]);
}
}
```
但我不知道在 `???` 处该写什么。我听说过委托,但不知道如何正确声明和使用它们。你能用一个简单的例子解释一下如何将方法(例如 `int Square(int x)`)传递给另一个方法吗?
另外,我也想知道是否可以传递具有不同数量参数的方法?还有,在现代