¿Cómo pasar un método como parámetro a otro método en C#?
¡Hola a todos! Acabo de empezar a aprender C# y me encontré con este problema. Tengo varios métodos que hacen casi lo mismo, pero con pequeñas diferencias en la lógica. Por ejemplo, quiero aplicar alguna operación a un array de números: sumar todos los elementos, multiplicarlos, encontrar el máximo. En lugar de escribir tres bucles separados, me gustaría escribir un método universal que acepte una "acción" (otro método) y la aplique al array.
Intenté hacerlo así:
```csharp
public void ProcessArray(int[] numbers, ??? operation)
{
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = operation(numbers[i]);
}
}
```
Pero no sé qué escribir en lugar de `???`. He oído hablar de los delegados, pero no entiendo cómo declararlos y usarlos correctamente. ¿Pueden explicarme con un ejemplo simple cómo pasar un método (por ejemplo, `int Square(int x)`) a otro método?
También me interesa saber si se pueden pasar métodos con diferente número de parámetros. ¿Y hay algo en el C# moderno...