4

我希望能够存储函数引用并忽略参数,直到它实际被使用。

这是我希望它看起来的样子:

StoreType f=MyFunction;
.......
var r=f.Invoke(arg1,arg2,arg3) as ReturnType;

这有点像 Action 和 Func,但它们是强类型的,我希望能够声明和使用这种类型,而无需精确知道函数将采用多少参数和什么类型。

我如何在 C# 中做到这一点?

4

2 回答 2

1

您可以使用较旧的delegate语法。

public delegate ReturnType MyFunction(string arg1, int arg2, ...);

var result = MyFunction.Invoke(arg1, arg2, ...);

于 2013-03-05T20:33:52.533 回答
1

For the argument count, just pass an array of object containing the arguments.

f.Invoke(new object[]{ arg1, args2, args3, ... });

For the type use the method

Convert.ChangeType(objectToConvert, destinationType);

Should work for me :)

于 2013-03-04T15:43:37.080 回答