나는이 같은 질문이 이미 있다는 것을 알고 있지만, 나는 심각하게 대답을 이해하지 못한다 (그리고 나는 그것에 대해 논평 할 수 없다).리플렉션을 통해 얻은 메서드를 대리자에게 할당하는 방법은 무엇입니까? (또는 : 리플렉션을 통해 메서드 호출의 속도를 높이는 방법)
나는 완전히 새로운 리플렉션이고, 새로운 델리게이트도 새롭다. 그래서 이것은 나에게 상당히 어렵다.
A는 얼마 전 나는 (간체) 이런 식으로했다, 방법을 얻기 위해 (처음으로) 반사를 사용 :
object perlinObj;
MethodInfo PerlinMethod = null;
//...
ConstructorInfo constructor = type.GetConstructor(Type.EmptyTypes);
perlinObj = constructor.Invoke(new object[] { });
PerlinMethod = type.GetMethod("GetValue", new Type[] { typeof(Vector3) });
//...
float PerlinFunction(Vector3 pos)
{
return (float)((Double)PerlinMethod.Invoke(perlinObj, new object[] { pos }));
}
이 작동하지만 문제는이보다 훨씬 느린 점입니다 메소드를 직접 호출하면됩니다. 그래서 어쨌든 대리인에게 할당 한 다음 invoke를 사용하는 대신 위임자를 호출하는 것이 좋을 것이라고 생각했습니다. (맞습니까?)
하지만 어떻게하는지는 알 수 없습니다. msdn : http://msdn.microsoft.com/en-us/library/ms228976.aspx에 대한 설명서를 이해하지 못합니다. (내가 수행하려고 시도하는 것과 동일하지는 않습니다.) Assign method to delegate through reflection을 정확히 읽어야합니다.
(그리고 내가 작동하지 않았다 시도)
그래서 누군가가 나에게 설명 할 수있는 내가 제공된 예제 코드에서해야 할?
아니요, 제 잘못입니다. 도움 주셔서 감사합니다. – Stef