Jest to doskonały przypadek użycia dla delegata generycznego Action
.
List<Action> functions = new List<Action>();
functions.Add(Move);
foreach (Action func in functions)
func();
Jeśli potrzebujesz parametry, użyłbym lambdy do abstrakcyjnego nich z dala:
List<Action> functions = new List<Action>();
functions.Add(Move);
functions.Add(() => MoveTo(1, 5));
foreach (Action func in functions)
func();
Delegat jest zbliżona do wskaźników funkcji z C++, że posiada co funkcja „jest” (nie powrót wartość jak w twoim przykładzie), więc możesz nazwać to tak jak zwykłą funkcję. Delegat generyczny akcji nie przyjmuje żadnych parametrów i niczego nie zwraca, więc jest idealny do generycznego "wywoływania tych funkcji".
MSDN do działania: Action Delegate
dziękuję !! Jego działa dobrze teraz (: – user3491915
robi '' Lista niezbędnych Wydaje się po prostu definiowanie 'Action yourFunction;' i dołączenie? metody to działa przez '+ =' im, tak jak to 'yourFunction + = DoThis; yourFunction + = DoThat;'. Tylko upadek, nie jestem do końca pewien, jak iteruje to wewnętrznie, więc jeśli potrzebujesz tego poziomu kontroli Lista może być bardziej odpowiednia –
bigp
@bigp Możesz to zrobić, ponieważ wszyscy delegaci są multiemisją Ja osobiście lubię być tutaj wprost, jeśli chcę użyć + = Po prostu skorzystam z wydarzenia. rzecz jednak – BradleyDotNET