Se si conosce quale parametro si desidera passare, prendere un Action<T>
per il tipo. Esempio:
void LoopMethod (Action<int> code, int count) {
for (int i = 0; i < count; i++) {
code(i);
}
}
Se si desidera che il parametro da passare al metodo, rendono il metodo generico:
void LoopMethod<T> (Action<T> code, int count, T paramater) {
for (int i = 0; i < count; i++) {
code(paramater);
}
}
E il codice chiamante:
Action<string> s = Console.WriteLine;
LoopMethod(s, 10, "Hello World");
Update. Il codice dovrebbe essere simile:
private void Include(IList<string> includes, Action<string> action)
{
if (includes != null)
{
foreach (var include in includes)
action(include);
}
}
public void test()
{
Action<string> dg = (s) => {
_context.Cars.Include(s);
};
this.Include(includes, dg);
}
fonte
2011-02-11 04:06:12
È il vostro 'Action' solo un' Action' o è un 'azione' o qualsiasi altra variazione? Quanti parametri vuoi? –
BoltClock
Domanda aggiornata – Jop
Sembra che tu stia già passando gli include tramite l'argomento 'includes'. L'idea che vuoi passare ogni membro della lista 'include' a' action'? In questo caso, passa '_context.Cars.Include' (senza parentesi). – itowlson