我有一个函数,它返回Dictionary-Keys-List的下一个比给定值更高的值。如果我们有一个{1,4,10,24}的键列表和一个给定值8,函数将返回10。
显然,字典的值部分的类型对函数无关紧要,
Dictionary<int, int> 和
Dictionary<int, myClass> 都是一样的。
当我想要使用任何Dictionary调用函数时,方法头应该是什么样子的,它的key-Type是int,而value-Type是无关的?
我试过了:
private int GetClosedKey(Dictionary<int, object> list, int theValue);但是当我用字典调用它的时候,它说有非法的参数。我不想为我的函数可能被调用的每个不同的值类型复制‘n’粘贴函数。你有什么想法,如何做到这一点?
先谢谢你,弗兰克
发布于 2010-03-16 18:33:25
您可以将其设置为通用的:
private int GetClosedKey<T>(Dictionary<int, T> list, int theValue)在大多数情况下,在调用该方法时,可以使用类型推断来避免必须为T指定类型参数。
但是,我会考虑将其更改为:
private int GetClosedKey(ICollection<int> list, int theValue)然后用以下命令调用它:
int value = GetClosedKey(dictionary.Keys, desiredValue);这使得代码更加通用--毕竟,没有必要将其与字典紧密耦合。抛开其他事情不谈,这将使测试变得更简单。
https://stackoverflow.com/questions/2453547
复制相似问题