简单。如果我使用:
public void Add(params int[] values)
然后我可以这样使用:
Add(1, 2, 3, 4);
但是现在我要处理键值对!我有一个KeyValue类来将整数链接到字符串值。所以我从以下内容开始:
public void Add(params KeyValue[] values)
但是我不能使用这个:
Add(1, "A", 2, "B", 3, "C", 4, "D");
相反,我被迫使用:
Add(new KeyValue(1, "A"), new KeyValue(2, "B"), new KeyValue(3, "C"), new KeyValue(4, "D"));
噁心...我已经不喜欢这个了...
所以,现在我使用Add函数而没有使用params修饰符,只是将一个预定义的数组传递给这个函数。由于它只用于测试的快速初始化,我并不太担心需要这个额外的代码,尽管我想保持代码简单易读。我想知道有没有诀窍可以使用我不能使用的方法,但是否有不使用"new KeyValue()"构造的方法呢?
KeyValuePair<TKey, TValue>
了吗? - Joel Coehoorn