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