2011-08-16 1 views
11

Je ne sais même pas si ça s'appelle un alias, mais laissez-moi continuer quand même.C#: Comment créer des "alias" pour les classes

Vous savez comment le type System.String en C# est en quelque sorte "aliasé" avec "chaîne"? Dans Visual Studio, "chaîne" est en minuscules et en bleu. J'aimerais faire ça à certains de nos longs noms de classe. Certains sont tous comme "RelocatedPlantProductReleaseItem". Je ne peux pas changer le nom de celui-ci, mais un nom aussi long rend le code très long. J'aimerais pouvoir utiliser "Rppr" à la place. Ainsi, au lieu de cela:

RelocatedPlantProductReleaseItem Item = new RelocatedPlantProductReleaseItem();

J'irais comme:

Rppr Item = new Rppr();

Je sais que je peux créer une classe appelée RPPR et l'ont hériter de RelocatedPlantProductReleaseItem, mais qui semble hacky .

En outre, le scénario que j'ai donné ci-dessus est totalement fictif. Je l'ai juste utilisé pour démontrer la fonctionnalité essentielle que j'essaie d'atteindre.

En outre, comment s'appelle-t-il techniquement lorsque "chaîne" représente System.String?

Mise à jour: Merci pour toutes les réponses, les gars, mais je suppose que j'aurais dû préciser que je veux que ce soit une chose globale. Je ne veux pas avoir à le spécifier en haut de chaque fichier de code. Je veux le spécifier en un seul endroit et il fonctionne partout dans l'application entière, même dans d'autres assemblages qui font référence à son assemblage.

+0

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

+0

je mis à jour mon post pour tout le monde – oscilatingcretin

Répondre

30

Utilisez une directive à l'aide

using Rppr = Namespace.To.RelocatedPlantProductReleaseItem; 

EDIT Op clarifié pour demander une solution globale.

Il n'y a pas d'équivalent de style typedef en C# qui peut créer un remplacement global d'un nom de type. Vous devrez utiliser une directive using dans chaque fichier que vous souhaitez avoir cette abréviation ou aller pour la version longue du nom.

+0

@Marc bonne prise, mis à jour – JaredPar

+0

Désolé d'être pointilleux *% #%^*, mais c'est ma nature :) –

+1

@ Marc, je préfère être corrigé et éventuellement corriger que mal et ignorant :). – JaredPar

4

Essayez

using Rppr = SomeNamespace.RelocatedPlantProductReleaseItem; 

Reference

6

string est une commodité offerte par le langage C# pour faire référence au type CLR réelle System.String.

Vous pouvez obtenir des résultats similaires avec une directive using. Au sommet du fichier dans lequel vous souhaitez le nom raccourci, ajoutez cette ligne:

using ShortName = Namespace.ReallyLongClassNameGoesHereOhGodWhy; 

Ensuite, vous pouvez dire ShortName myVar = new ShortName();

Notez que vous devez faire sur une base par fichier. Vous ne pouvez pas obtenir la même couverture que string avec une seule déclaration.

2

Vous pouvez le faire:

using Rppr = RelocatedPlantProductReleaseItem; 
0

essayer d'ajouter ce qui suit avec vos autres usings

using Rppr = YourItemsNamespace.RelocatedPlantProductReleaseItem; 
1

Vous créez un alias en utilisant:

using alias = LongClassName; 

cet alias est visible dans l'espace de noms où vous l'avez déclaré.

1

Vous pouvez ajouter une directive using en haut de votre fichier:

using Rppr = MyProjectNs.RelocatedPlantProductReleaseItem; 

Mais il (seulement) fonctionne par fichier, et non pour un projet.

Questions connexes