我希望在实际使用之前能够存储函数引用并忽略参数。
我想让它看起来像这样:
StoreType f=MyFunction;
.......
var r=f.Invoke(arg1,arg2,arg3) as ReturnType;
这有点像Action和Func,但它们都是强类型的,我希望能够声明和使用这种类型,而不需要精确地知道函数将接受多少参数和什么类型。
我如何在c#中做到这一点?
对于参数计数,只需传递一个包含参数的对象数组。
f.Invoke(new object[]{ arg1, args2, args3, ... });
对于类型使用
方法Convert.ChangeType(objectToConvert, destinationType);
应该适合我:)
您可以使用较旧的delegate
语法。
public delegate ReturnType MyFunction(string arg1, int arg2, ...);
var result = MyFunction.Invoke(arg1, arg2, ...);