2011-08-18 18 views
7

Sto tentando di implementare un metodo simile a Tuple<T1,T2>.Create<T1,T2>(T1 item1, T2 item2), ma devo ancora specificare i parametri del tipo mentre Tuple.Create li sottrae.Come è stata implementata la Tupla <T1,T2>. Crea <T1,T2> (T1 item1, T2 item2)?

Penso che la definizione sia giusta. Che cosa sto facendo di sbagliato? Ecco il mio codice:

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

risposta

11

Vorrete creare una versione non generica della classe.

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

Le proprietà Key e Value sono di sola lettura, il che significa che un kvp è immutabile. Ho apportato modifiche rilevanti. – nawfal

5

L'ho capito. Non è definito come un metodo statico sulla classe Tuple<T1,T2>, ma sulla classe Tuple.

+1

@Quintin - Grazie! Non avevo capito che erano presenti le orecchie vergini. –

+1

È bruciato così male! =) –

Problemi correlati