2011-08-16 29 views
11

Ni siquiera sé si se llama un alias, pero déjame continuar de todos modos.C#: Cómo crear "alias" para las clases

¿Sabe cómo el tipo System.String en C# tiene un "alias" con "cadena"? En Visual Studio, "cadena" está en minúsculas y texto azul. Me gustaría hacer esto con algunos de nuestros largos nombres de clase. Algunos son todos como "RelocatedPlantProductReleaseItem". No puedo cambiar el nombre, pero un nombre tan largo realmente hace que el código sea prolijo. Me gustaría poder usar "Rppr" en su lugar. Así que en lugar de esto:

RelocatedPlantProductReleaseItem Item = new RelocatedPlantProductReleaseItem();

me gustaría ir como:

Rppr Item = new Rppr();

sé que puedo crear una clase llamada RPPR y tienen que herede de RelocatedPlantProductReleaseItem, pero que parece hacky .

Además, el escenario que describí anteriormente es totalmente ficticio. Lo utilicé para demostrar la funcionalidad esencial que estoy tratando de lograr.

Además, ¿cómo se llama técnicamente cuando "cadena" representa System.String?

Actualización: Gracias por todas las respuestas, muchachos, pero creo que debería haber especificado que quiero que esto sea algo global. No quiero tener que especificarlo en la parte superior de cada archivo de código. Quiero especificarlo en un solo lugar y funciona en todas partes en toda la aplicación, incluso en otros ensambles que hacen referencia a su ensamblaje.

+0

ver http://stackoverflow.com/questions/244246/c-alias-a-class-name – Matthieu

+0

He actualizado mi post para todos – oscilatingcretin

Respuesta

30

Utilice una directiva using

using Rppr = Namespace.To.RelocatedPlantProductReleaseItem; 

EDITAR Op aclaró que pedir una solución global.

No existe un equivalente de estilo typedef en C# que puede crear un reemplazo global de un nombre de tipo. Tendrá que usar una directiva de uso en cada archivo que desee tener esta abreviatura o elegir la versión larga del nombre.

+0

@Marc buena captura, actualizado – JaredPar

+0

Siento ser un exigente *% #%^*, pero es mi naturaleza :) –

+1

@Marc, prefiero ser corregido y, finalmente, corregir que equivocado e ignorante :). – JaredPar

4

Trate

using Rppr = SomeNamespace.RelocatedPlantProductReleaseItem; 

Reference

6

string es una comodidad que ofrece el lenguaje C# para referirse al tipo CLR real System.String.

Puede lograr resultados similares con una directiva using. En la parte superior del archivo en el que desea que el nombre abreviado, añada esta línea:

using ShortName = Namespace.ReallyLongClassNameGoesHereOhGodWhy; 

entonces se puede decir ShortName myVar = new ShortName();

Tenga en cuenta que usted tiene que hacer esto sobre una base por archivo. No puede obtener la misma cobertura que string con una sola declaración.

2

Usted puede hacer esto:

using Rppr = RelocatedPlantProductReleaseItem; 
0

intenta agregar lo siguiente con sus otros usings

using Rppr = YourItemsNamespace.RelocatedPlantProductReleaseItem; 
1

Se crea un alias usando:

using alias = LongClassName; 

ese alias es visible en el espacio de nombres donde lo declaraste

1

Usted puede agregar una directiva using en la parte superior de su archivo:

using Rppr = MyProjectNs.RelocatedPlantProductReleaseItem; 

Pero es (sólo) trabaja por archivo, no para un proyecto.

Cuestiones relacionadas