2011-08-16 2 views
11

Non so nemmeno se si tratta di un alias, ma lasciami continuare comunque.C#: Come creare "alias" per le classi

Sapete come il tipo System.String in C# è un po '"alias" con "stringa"? In Visual Studio, "stringa" è in caratteri minuscoli e blu. Mi piacerebbe farlo ad alcuni dei nostri lunghi nomi di classe. Alcuni sono come "RelocatedPlantProductReleaseItem". Non posso cambiarne il nome, ma un nome così lungo rende il codice prolisso. Mi piacerebbe essere in grado di utilizzare "Rppr" invece. Così, invece di questo:

RelocatedPlantProductReleaseItem Item = new RelocatedPlantProductReleaseItem();

andrei come:

Rppr Item = new Rppr();

So che posso creare una classe chiamata RPPR e l'abbiano in ereditare da RelocatedPlantProductReleaseItem, ma che sembra hacky .

Inoltre, lo scenario che ho dato sopra è totalmente fittizio. L'ho appena usato per dimostrare la funzionalità essenziale che sto cercando di ottenere.

Inoltre, cosa viene chiamato tecnicamente quando "stringa" rappresenta System.String?

Aggiornamento: Grazie per tutte le risposte, ragazzi, ma suppongo che avrei dovuto specificare che voglio che questa sia una cosa globale. Non voglio doverlo specificare all'inizio di ogni file di codice. Voglio specificarlo in un posto e funziona ovunque nell'intera applicazione, anche in altri assembly che fanno riferimento al suo assieme.

+0

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

+0

Ho aggiornato il mio post per tutti – oscilatingcretin

risposta

30

Utilizzare una direttiva using

using Rppr = Namespace.To.RelocatedPlantProductReleaseItem; 

EDIT Op chiarito per chiedere una soluzione globale.

Non esiste uno stile equivalente a typedef in C# che può creare una sostituzione globale di un nome di tipo. Avrai bisogno di usare una direttiva using in ogni file che vuoi avere questa abbreviazione o andare per la versione lunga del nome.

+0

@Marc good catch, aggiornato – JaredPar

+0

Mi spiace essere un pignolo *% #%^*, ma è la mia natura :) –

+1

@Marc, preferirei essere corretto e alla fine corretto che sbagliato e ignorante :). – JaredPar

4

Prova

using Rppr = SomeNamespace.RelocatedPlantProductReleaseItem; 

Reference

6

string è una comodità offerta dal linguaggio C# per fare riferimento al tipo CLR effettivo System.String.

È possibile ottenere risultati simili con una direttiva using. Nella parte superiore del file in cui si desidera il nome abbreviato, aggiungere questa riga:

using ShortName = Namespace.ReallyLongClassNameGoesHereOhGodWhy; 

allora si può dire ShortName myVar = new ShortName();

Nota che devi fare questo su una base per file. Non è possibile ottenere la stessa copertura di string con una singola dichiarazione.

2

È possibile farlo:

using Rppr = RelocatedPlantProductReleaseItem; 
0

tenta di aggiungere il seguente con i vostri altri usings

using Rppr = YourItemsNamespace.RelocatedPlantProductReleaseItem; 
1

Si crea un alias utilizzando:

using alias = LongClassName; 

Questo alias è visibile in lo spazio dei nomi in cui l'hai dichiarato.

1

È possibile aggiungere una direttiva using nella parte superiore del file:

using Rppr = MyProjectNs.RelocatedPlantProductReleaseItem; 

Ma è (solo) funziona per file, non per un progetto.