对于下面对Test2()
的调用,是否有必要缩短其省略显式键入的时间?
class Program
{
static void Main(string[] args)
{
Test(("a", (1, "b")));
Test2(new Dictionary<string, (int, string)>()
{ {"a", (1, "b") } });
}
static void Test((string, (int, string)) data)
{
}
static void Test2(Dictionary<string, (int, string)> data)
{
}
}
答案 0 :(得分:0)
在C#中,您定义的构造可以适合许多类型,因此不能推断为字典。
下面,我使用params关键字接受您指定的元组类型的数组,然后从中创建一个字典以调用需要字典的方法。
private static void Main(string[] args)
{
Test(("a", (1, "b")));
TestWrap(
("a", (1, "b")),
("b", (3, "c"))
);
}
private static void Test((string, (int, string)) data)
{
}
private static void TestWrap(params (string, (int, string))[] data)
{
Test2(data.ToDictionary(v => v.Item1, v => v.Item2));
}
private static void Test2(Dictionary<string, (int, string)> data)
{
}