5
我奮力創建一個通用的包裝類,它將調用與lambda表達式的方法。創建一個通用的包裝類,它將調用方法與Lambda表達式
的代碼看起來是這樣的:
包裝類:
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',但沒有定義。
有沒有辦法做到這一點?
是的...它的工作原理:)非常感謝 –