1
我想用void返回类型来编译表达式来使用对象返回类型进行委托。我想在这种情况下得到空值。如果表达式返回类型为void,如何获得null?
var inputArg0 = Expression.Parameter(typeof(object), "arg0");
var inputArg1 = Expression.Parameter(typeof(CancellationToken), "arg1");
var inputArg0Converted = Expression.Convert(inputArg0, inputArg0Type);
var instanceExpression = Expression.Constant(instance);
var call = Expression.Call(instanceExpression, methodInfo, inputArg0Converted, inputArg1);
var lambda = Expression.Lambda<Func<object, CancellationToken, object>>(call, inputArg0, inputArg1);
var _delegate = lambda.Compile();
// works
public string Ping(object e, CancellationToken cancellationToken)
{
return "OK";
}
// can't compile this MethodInfo to Func<object, CancellationToken, object>
public void Update(ObjectChangedEvent e, CancellationToken cancellationToken)
{
// do stuff
}
请详细介绍一下您在此尝试实现的目标。 – Venemo