에서 매개 변수로 반환 형식 비슷한 질문이 여기에있다 :패스 방법/C 번호
Pass Method as Parameter using C#
가정 당신은 메소드의 인수를 알고 유형을 반환합니다. 조금 다른 것을하고 싶습니다. 내가 대신 람다 기능을 소요하는 System.Reflection의 .GetMethod (문자열)의 버전을 만들 찾고 있어요 - 그래서 대신 :
MethodInfo methodInfo = ReflectionHelper.GetMethod<MyClass>(mc => mc.AddThing);
:
MethodInfo methodInfo = typeof(MyClass).GetMethod("AddThing");
내가 더 컴파일 안전을 사용할 수 있습니다 나는 t 모르는 제외
public static MethodInfo GetMethod<T, TReturn>(Expression<Func<T, Func<TArg, TReturn>>> expr)
{
return ((MethodCallExpression)expr.Body).Method;
}
: 예를 들어이 인수 없었다 경우 문자열을 반환 - ReflectionHelper는 인수의 수를 알고 간단한 틱 것 해답를 미리 형식을 반환 그렇다면
그는 인수 카운트/반환 유형을 미리 알고, 나는 모든 것을 커버하는 20 가지 오버로드로 스팸 메일을 피하고 싶습니다.
그렇다면 어떻게해야합니까?
'동적 인'도움이 될까요? – Johnny5
인수를 모르는 경우 메서드에 전달하려고 시도하는 대상을 받아들입니다. – Servy
@ Johnny5 어떻게 보이지 않습니다. 그것은 여전히 호출 될 때 고정 된 서명을 필요로하거나 최소한 제공되는 인수를 준수하는 서명을 필요로합니다. – Servy