C #: Как создавать псевдонимы для классов

Я даже не знаю, называется ли это псевдонимом, но все равно позвольте мне продолжить.

Вы знаете, что тип System.String в C # как бы "псевдоним" с "строкой"? В Visual Studio «строка» отображается в нижнем регистре синим текстом. Я хотел бы сделать это с некоторыми из наших длинных имен классов. Некоторые из них похожи на «RelocatedPlantProductReleaseItem». Я не могу изменить его название, но такое длинное имя действительно делает код длинным. Я хотел бы вместо этого использовать "Rppr". Итак, вместо этого:

RelocatedPlantProductReleaseItem Item = new RelocatedPlantProductReleaseItem();

Я бы хотел:

Rppr Item = new Rppr();

Я знаю, что могу создать класс под названием Rppr и унаследовать его от RelocatedPlantProductReleaseItem, но это кажется хакерским.

Кроме того, сценарий, который я привел выше, полностью вымышлен. Я просто использовал его, чтобы продемонстрировать основные функции, которых я пытаюсь достичь.

Кроме того, как это технически называется, когда «строка» представляет System.String?

Обновление: Спасибо за все ответы, ребята, но я думаю, мне следовало указать, что я хочу, чтобы это было глобальным явлением. Я не хочу указывать его в верхней части каждого файла кода. Я хочу указать его в одном месте, и он будет работать везде во всем приложении, даже в других сборках, которые ссылаются на его сборку.


person oscilatingcretin    schedule 16.08.2011    source источник
comment
см. stackoverflow.com/questions/244246/c-alias-a-class-name   -  person Matthieu    schedule 16.08.2011
comment
Я обновил свой пост для всех   -  person oscilatingcretin    schedule 16.08.2011


Ответы (7)


Используйте директиву using

using Rppr = Namespace.To.RelocatedPlantProductReleaseItem;

РЕДАКТИРОВАТЬ Ответ пояснил, чтобы попросить глобальное решение.

В C # нет эквивалента стиля typedef, который может создать глобальную замену имени типа. Вам нужно будет использовать директиву using в каждом файле, в котором вы хотите использовать это сокращение, или использовать длинную версию имени.

person JaredPar    schedule 16.08.2011
comment
Извините за разборчивость % #% ^, но это моя натура :) - person Marc Gravell; 16.08.2011
comment
@Marc, я бы предпочел, чтобы меня поправили и в конечном итоге исправили, чем неправильно и невежественно :). - person JaredPar; 16.08.2011
comment
Это не тот ответ, который я хотел услышать, но, тем не менее, это ответ! Спасибо - person oscilatingcretin; 16.08.2011

string - это удобство, предлагаемое языком C # для ссылки на фактический тип CLR System.String.

Вы можете добиться аналогичных результатов с помощью директивы using. Вверху файла, в котором вы хотите сократить имя, добавьте эту строку:

using ShortName = Namespace.ReallyLongClassNameGoesHereOhGodWhy;

Тогда вы можете сказать ShortName myVar = new ShortName();

Обратите внимание, что вы должны делать это для каждого файла отдельно. Вы не можете получить такое же покрытие, как string, с помощью одного объявления.

person dlev    schedule 16.08.2011

Пытаться

using Rppr = SomeNamespace.RelocatedPlantProductReleaseItem;

Справочная информация

person Bala R    schedule 16.08.2011

Ты можешь это сделать :

using Rppr = RelocatedPlantProductReleaseItem;
person Incognito    schedule 16.08.2011

Вы создаете псевдоним, используя:

using alias = LongClassName;

Этот псевдоним отображается в том пространстве имен, в котором вы его объявили.

person Vladimir    schedule 16.08.2011

Вы можете добавить директиву using вверху файла:

 using Rppr = MyProjectNs.RelocatedPlantProductReleaseItem;

Но он (только) работает для каждого файла, а не для проекта.

person Henk Holterman    schedule 16.08.2011

попробуйте добавить следующее с другими вашими использованиями

using Rppr = YourItemsNamespace.RelocatedPlantProductReleaseItem;
person tam    schedule 16.08.2011