假设我们在要存储方法的地方初始化了一个字典:
public Dictionary<string, Action<int>> Dic = Dictionary<string, Action<int>>;
public void one(int a) {};
public void two(int a, int b) {};
问题:不管怎么说,它可以有1个或2个整数作为参数?现在,我将其作为一种变通方法来解决:
public void one(int a, int b) {};
public void two(int a, int b) {};
现在,尽管第一个参数只需要1个参数,但两者都有两个参数。
有什么办法吗?
由于将使用最大数量的参数并人为地创建更多参数(这种方法可能被戏称为de-schönfinkelization),因此有必要事先知道参数的最大数量(不考虑预定义的委托人仅支持“仅“多达9个参数类型);但是,如果通过某种其他机制您仍然知道参数的数量,则可以使用
Dictionary<string, object>
来存储代表并将它们转换回所需的类型,如下所示。
((Action<int,int,int>)Dic["foo"])(1,2,3)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句