2011-08-18 12 views
7

Estoy tratando de implementar un método similar al Tuple<T1,T2>.Create<T1,T2>(T1 item1, T2 item2), pero aún tengo que especificar los parámetros de tipo, mientras que Tuple.Create los infiere.¿Cómo se implementa Tuple <T1,T2>. Crear <T1,T2> (T1 item1, T2 item2)?

Creo que la definición es correcta. ¿Qué estoy haciendo mal? Aquí está mi código:

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

Respuesta

11

Querrá crear una versión no genérica de la clase.

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

Las propiedades clave y de valor son de solo lectura, lo que significa que un kvp es inmutable. Hice una edición relevante. – nawfal

5

Me di cuenta. No se define como un método estático en la clase Tuple<T1,T2>, sino en la clase Tuple.

+1

@Quintin - Thanks! No me di cuenta de que las orejas vírgenes estaban presentes. –

+1

¡Quemó tan mal! =) –

Cuestiones relacionadas