2011-05-18 22 views
10

es decir, algo así como¿Hay un equivalente a typedef en C#?

typedef Dictionary<string, string> mydict; 

Juro que he visto, pero no lo encuentro

+0

BTW: SO no me dejaría preguntarle un buen succint pregunta, tiene que ser más grande! – pm100

+0

No sé si admite clases genéricas, pero puede probar la instrucción using. http://msdn.microsoft.com/en-us/library/sf0df423(v=vs.80).aspx –

+0

Posible duplicado de [Equivalente de typedef en C#] (http://stackoverflow.com/questions/161477/ equivalent-of-typedef-in-c-sharp) – DaveInCaz

Respuesta

19

using MyDict = Dictionary<String, String> que es como la definición de un símbolo que sería sustituido por el compilador.

+0

+1, con la advertencia de que solo se aplica para ese ámbito de compilación. – user7116

+0

tenga en cuenta que el uso de la palabra clave resumen http://msdn.microsoft.com/en-us/library/zhdeatwt.aspx no menciona este uso, que es por lo que me perdí – pm100

+0

BTW tiene que utilizar el nombre completo de clase – pm100

0

No existe un equivalente de typedef en C#, sin embargo, puede usar 'using' para los alias.

0

Hay delegado, que se utiliza para definir un tipo de argumento método,

hay using BlaBla = Full.Name.Space.Yada.Yada;

embargo

, la instrucción using sólo es válida en el archivo actual.

2

uso herencia:

DoubleNameValueCollection clase pública: Diccionario < cadena, NameValueCollection> {}

A continuación, utilice como si fuera un typedef:

NameValueCollection values = new NameValueCollection(); 
values.Add("value1", "value2"); 
DoubleNameValueCollection dblNameCol = new DoubleNameValueCollection(); 
dblNameCol.Add("key1", values); 

O si desea confundir los demás :

DoubleNameValueCollection dblNameCol = new DoubleNameValueCollection 
    { 
     { "key1", new NameValueCollection 
      { 
       { "value1", "value2" } 
    }}}; 
+0

Mejor nombre sería NameDoubleValueCollection – guest