我希望能够存储函数引用并忽略参数,直到实际使用它为止。
这就是我想要它的样子:
StoreType f=MyFunction;
.......
var r=f.Invoke(arg1,arg2,arg3) as ReturnType;
这有点像Action和Func,但是那些是强类型的,我希望能够声明并使用这种类型,而无需准确知道函数将采用多少参数和类型。
我如何在c#中执行此操作?
答案 0 :(得分:1)
对于参数count,只需传递一个包含参数的对象数组。
f.Invoke(new object[]{ arg1, args2, args3, ... });
对于类型,请使用方法
Convert.ChangeType(objectToConvert, destinationType);
应该对我有用:)
答案 1 :(得分:1)
您可以使用较旧的delegate
语法。
public delegate ReturnType MyFunction(string arg1, int arg2, ...);
var result = MyFunction.Invoke(arg1, arg2, ...);