考虑
public class Tuple<T1, T2>
{
    public Tuple(T1 v1, T2 v2)
    {
        V1 = v1;
        V2 = v2;
    }
    public T1 V1 { get; set; }
    public T2 V2 { get; set; }
}
public static class Tuple
{
    // MAGIC!!
    public static Tuple<T1, T2> New<T1, T2>(T1 v1, T2 v2)
    {
        return new Tuple<T1, T2>(v1, v2);
    }
}
为什么在上面的工作中标有"MAGIC"的部分?它允许语法 
 Tuple.New(1, "2")而不是new Tuple<int, string>(1, "2"),但......如何以及为什么?
为什么我不需要   Tuple.New<int,string>(1, "2")  ?
这称为泛型类型推断,仅适用于通用方法.你可以传递你想要的任何类型的实例作为参数,New编译器推断你的意思是返回匹配参数的特定通用元组,如Tuple<int, string>...
| 归档时间: | 
 | 
| 查看次数: | 254 次 | 
| 最近记录: |