2
목록에 저장된 메서드 이름으로 메서드를 호출하려고합니다. 누구든지 도와 줄 수 있습니까? 나는 C#에 익숙하다! 전혀 Delegate.DynamicInvoke
필요하지 않습니다처럼Delegate.DynamicInvoke
{
delegate string ConvertsIntToString(int i);
}
class Program
{
public static List<String> states = new List<string>() { "dfd","HiThere"};
static void Main(string[] args)
{
ConvertsIntToString someMethod = new ConvertsIntToString(states[1]);
string message = someMethod(5);
Console.WriteLine(message);
Console.ReadKey();
}
private static string HiThere(int i)
{
return "Hi there! #" + (i * 100);
}
}
왜 그가 직접 호출 할 수있을 때 대리인을 만들어야합니까? – Clueless
@ 희소식 : 우리는 모른다. 그러나 그가 원할 수도있는 많은 이유가있다. 예를 들어, 여러 번 호출하는 경우, 여러 번 리플렉션을 사용하여 호출하는 것보다 한 번 델리게이트를 만드는 것이 훨씬 효율적입니다. 또는 대리인을 수락하는 메서드에 전달하려고 할 수 있습니다. –