元组<t1,t2> .Create <t1,t2>(T1 item1,T2 item2)是如何实现的?</t1,t2> </t1,t2>

时间:2011-08-18 20:53:19

标签: c# .net generics tuples

我正在尝试实现与Tuple<T1,T2>.Create<T1,T2>(T1 item1, T2 item2)类似的方法,但我仍然需要指定类型参数,而Tuple.Create会推断它们。

我认为这个定义是正确的。我究竟做错了什么?这是我的代码:

public class KeyValuePair<K, V>
{
    public K Key { get; set; }       

    public V Value { get; set; }

    public static KeyValuePair<K, V> Create<K, V>(K key, V value)
    {
        return new KeyValuePair<K, V> { Key = key, Value = value };
    }
}

2 个答案:

答案 0 :(得分:11)

您需要创建该类的非泛型版本。

public class KeyValuePair
{
    public static KeyValuePair<K, V> Create<K, V>(K key, V value)
    {
        return new KeyValuePair<K, V>(key, value);
    }
}

答案 1 :(得分:5)

我明白了。它没有在Tuple<T1,T2>类上定义为静态方法,而是在Tuple类上定义。