5
람다식이있는 메서드를 호출하는 일반 래퍼 클래스를 만드는 데 어려움을 겪고 있습니다.람다 식으로 메서드를 호출하는 일반 래퍼 클래스를 만듭니다.
코드는 다음과 같습니다
래퍼 클래스 :
public class Service<T>
{
private T instance;
public Service(T param)
{
this.instance = param;
}
public void Call<U>(Expression<Func<T, U>> aExpression, Action<U> returnClass)
{
var methodCallExpr = aExpression.Body as MethodCallExpression
var lambdaToFunc = Expression.Lambda(methodCallExpr).Compile();
returnClass((U)lambdaToFunc.DynamicInvoke());
}
}
싸여 클래스 :
public class Person
{
public int GetPersonById(int bbb)
{
return bbb;
}
}
내가 전화했다 장소 :
var serviceWrapper = new Service<Person>(new Person());
serviceWrapper.Call(x =>x.GetPersonById(2),Console.WriteLine);
을
나는 이 코드를 실행하면
내가이 예외를 얻을 .. 방법의 표현을 "예를"입니다 개체의 인스턴스를 atatch해야하지만 어떻게 나도 몰라 :
'변수 범위 '에서 참조 된'AsynCtry.Person '유형의 x'가 정의되어 있지만 정의되지 않았습니다.
이 방법이 있습니까?
가 네 ... 그것은 작동합니다 :) 덕분에 많은 –