Это скорее синтаксический вопрос C#, чем реальная проблема, требующая решения. Скажем, у меня есть метод, который принимает делегат как параметр. Скажем, у меня есть следующие методы определены:Есть ли способ использовать методы C# непосредственно в качестве делегатов?
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 */ }
Теперь, если я хочу назвать TakeSomeDelegates
с FirstAction
и SecondFunc
в качестве аргументов, насколько я могу сказать, что мне нужно сделать что-то вроде этого:
TakeSomeDelegates(x => FirstAction(x), (x,y,z) => SecondFunc(x,y,z));
Но есть ли более удобный способ использования метода, который соответствует требуемой подписке делегата без написания лямбда? В идеале что-то вроде TakeSomeDelegates(FirstAction, SecondFunc)
, хотя, очевидно, это не компилируется.
«хотя, очевидно, это не скомпилировать» ... что должно компилироваться :) – porges
woops, я действительно не знаю, что я делал неправильно раньше, но, похоже, сейчас все работает нормально. Я думаю, это довольно глупый вопрос: S – guhou
Извините за то, что тратил время на ребята ... Я также не уверен, какой ответ отметить как правильный ... Должен ли я просто удалить этот вопрос? – guhou