以下代码转到名为Formula的类,并为公式生成数字和标签。这些在两个单独的Dictionarys中返回,因为数字是双数据类型,标签是字符串。
Formula formula = new Formula(formula_type, primary_output, fat_values);
Dictionary<string, double> numbers = formula.generateNumbers();
Dictionary<string, string> labels = formula.generateLabels();
我正在尝试创建一个方法,可以输入这些Dictionarys中的任何一个,但我仍然坚持使用方法签名中的数据类型(参见下面的代码中的???)。
private static void displayData(string text, Dictionary<string, ???> dict)
{
string words = "The " + text + " Dictionary contains the following:";
Console.Out.WriteLine(words);
foreach (var pair in dict)
{
Console.Out.WriteLine(pair.Key + "=>" + pair.Value);
}
Console.Out.WriteLine("");
}
有一种简单的方法可以实现这一目标吗?如果解决方案很复杂,那么替代方法将更为可取,因为简单性非常重要。
答案 0 :(得分:4)
private static void displayData<T>(string text, Dictionary<string, T> dict)
{
string words = "The " + text + " Dictionary contains the following:";
Console.Out.WriteLine(words);
foreach (var pair in dict)
{
Console.Out.WriteLine(pair.Key + "=>" + pair.Value.ToString());
}
Console.Out.WriteLine("");
}
致电:
displayData<string>("text",labels);