3
작업 대리자에 전달 된 메서드 이름을 가져 오려고합니다. 작업 대리자의 메서드 이름 얻기
private static void DoAction(params Action<Group>[] actions)
{
foreach (Action<Group> action in actions)
{
Console.WriteLine(action.Method.Name);
}
}
그리고 주에서
, 이것은이 호출되는 방법은 다음과 같습니다 : 이것은 내가 가진 무엇 DoAction()의 실행 후DoAction(y => y.DoBar(), z => z.DoFoo());
방법 나는 "DoFoo"와 "도 바르을보고 기대했다 "라고 표시되지만 대신에 < Main>b__0
및 <Main>b__1
이 표시됩니다. 액션 위임자로부터 타겟 메소드의 실제 이름을 얻는 방법이 있는지 궁금한가요? 어떤 도움을 주셔서 감사합니다.
가 어떻게 지금 메소드를 호출 할 수 있습니다? action()이 작동하지 않습니다. Expression.Invoke()에는 메서드에 대한 인수가 필요합니다. Foo() 및 Bar() 메서드가 모두 인수를 사용한다고 가정하면 main에서 인수를 지정하고 DoAction()에서 호출하는 방법은 무엇입니까? – PoweredByOrange
@ programmer93'Expression.Compile()'을 사용하여 그것을'Action'으로 변환합니다. 내 업데이트 답변을 참조하십시오. –