通用KeyValuePair和类型推断

时间:2010-09-24 02:47:48

标签: c# .net generics type-inference

  

可能重复:
  Why can't the C# constructor infer type?

为什么以下情况属实:

var foo = new KeyValuePair(3,4); //doesn't compile!
var boo = new KeyValuePair<int,int>(3,4); //works fine!

我认为这两行都是合法的,因为类型可以(应该)从参数中推断出来。解释

1 个答案:

答案 0 :(得分:3)

简单地说,类型推断适用于方法,而不适用于构造函数。原因很简单,构造函数不接受类型参数,只有类型和方法。也就是说,KeyValuePair是一个未定义的类型。请记住,例如,可以使用以下类型:ActionAction<T>Action<T1, T2>等。