2011-08-18 103 views
7

我试图实施类似Tuple<T1,T2>.Create<T1,T2>(T1 item1, T2 item2)的方法,但我仍然需要指定类型参数,而Tuple.Create推断它们。元组如何创建<T1,T2>。创建<T1,T2>(T1 item1,T2 item2)?

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

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 }; 
    } 
} 

回答

11

您需要创建该类的非通用版本。

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

Key和Value属性是只读的,这意味着kvp是不可变的。我做了相关的编辑。 – nawfal

5

我想通了。它不是在Tuple<T1,T2>类中定义为静态方法,而是在Tuple类中定义的。

+1

@Quintin - 谢谢!我没有意识到处女耳朵在场。 –

+1

它烧得那么糟糕! =) –

相关问题