Como passar um método como parâmetro para outro método em C#?
Olá a todos! Comecei a estudar C# recentemente e me deparei com um problema. Tenho vários métodos que fazem quase a mesma coisa, mas com pequenas diferenças na lógica. Por exemplo, quero aplicar alguma operação a um array de números: somar todos os elementos, multiplicar, encontrar o máximo. Em vez de escrever três loops separados, gostaria de escrever um método universal que aceita uma "ação" (outro método) e a aplica ao array.
Tentei fazer assim:
```csharp
public void ProcessArray(int[] numbers, ??? operation)
{
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = operation(numbers[i]);
}
}
```
Mas não sei o que escrever no lugar de `???`. Ouvi falar sobre delegados, mas não entendo como declará-los e usá-los corretamente. Pode explicar com um exemplo simples como passar um método (por exemplo, `int Square(int x)`) para outro método?
Também tenho interesse em saber se é possível passar métodos com diferentes números de parâmetros. E existem recursos no C# moderno...
No answers yet.
Faça login para deixar uma resposta