2009-01-11 14 views
36

¿Cómo puedo hacer lo siguiente en C#? ¿Cuál es la forma correcta de escribir la primera línea de este fragmento de código?¿Cómo puedo crear un alias para una clase genérica en C#?

using KVP<K, V> = System.Collections.Generic.KeyValuePair<K, V>; 

class C { KVP<int, string> x; } 
+1

como Eric Lippert declaró [aquí] (http://stackoverflow.com/q/3720222/303290) "Esta es una característica ocasionalmente solicitada." que aún no ha entrado en producción. – mbx

Respuesta

39

No se puede, básicamente. Sólo se puede utilizar alias fijos, tales como:

using Foo = System.Collections.Generic.KeyValuePair<int, string>; 

class C { Foo x; } 
+7

drat, eso es desafortunado – yoyo

1

En algunos casos se puede ir con la herencia:

public class MyList<T1, T2> : List<Tuple<IEnumerable<HashSet<T1>>, IComparable<T2>>> { } 

public void Meth() 
{ 
    var x = new MyList<int, bool>(); 
} 

Aunque no en su caso particular, como KeyValuePair está sellado :-(

Cuestiones relacionadas