2011-08-18 58 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

它燒得那麼糟糕! =) –

相關問題