Jest to raczej pytanie składniowe C# niż rzeczywisty problem, który wymaga rozwiązania. Powiedzmy, że mam metodę, która przyjmuje delegata jako parametr. Powiedzmy, że mam następujące metody zdefiniowane:Czy istnieje sposób użycia metod C# bezpośrednio jako delegatów?
void TakeSomeDelegates(Action<int> action, Func<float, Foo, Bar, string> func)
{
// Do something exciting
}
void FirstAction(int arg) { /* something */ }
string SecondFunc(float one, Foo two, Bar three){ /* etc */ }
Teraz jeśli chcę zadzwonić TakeSomeDelegates
z FirstAction
i SecondFunc
jako argumenty, o ile mogę powiedzieć, muszę zrobić coś takiego:
TakeSomeDelegates(x => FirstAction(x), (x,y,z) => SecondFunc(x,y,z));
Ale czy istnieje wygodniejszy sposób użycia metody, która pasuje do wymaganego podpisu pełnomocnika bez pisania lambda? Idealnie coś takiego jak TakeSomeDelegates(FirstAction, SecondFunc)
, chociaż oczywiście to się nie kompiluje.
"Chociaż oczywiście to się nie kompiluje" ... to powinno się skompilować :) – porges
woops, naprawdę nie mam pojęcia, co robiłem źle wcześniej, ale teraz wydaje się działać dobrze teraz. Domyślam się, że jest to dość głupie pytanie: S – guhou
Przepraszamy za zmarnowanie twojego czasu faceci ... Nie jestem również pewien, która odpowiedź należy uznać za poprawną ... czy powinienem po prostu usunąć to pytanie? – guhou