【发布时间】:2012-11-30 22:43:52
【问题描述】:
我在 C# 中有一个对通用字典进行操作的函数:
public static string DoStuff<TKey, TValue>(Dictionary<TKey, TValue> dictionary)
{
// ... stuff happens here
}
我还有一个循环对象的函数。如果其中一个对象是 Dictionary,我需要将它传递给该通用函数。但是,在编译时我不知道 Key 或 Values 的类型是什么:
foreach (object o in Values)
{
if (/*o is Dictionary<??,??>*/)
{
var dictionary = /* cast o to some sort of Dictionary<> */;
DoStuff(dictionary);
}
}
我该怎么做?
【问题讨论】:
-
你能用 IDictionary 代替吗?
-
我不需要重写 DoStuff 函数来使用 IDictionary 类型吗?这不是一个真正的选择。
标签: c# generics dictionary