C #: Как создать «псевдонимы» для классов - PullRequest
11 голосов
/ 16 августа 2011

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

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

RelocatedPlantProductReleaseItem Item = new RelocatedPlantProductReleaseItem();

я бы сказал:

Rppr Item = new Rppr();

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

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

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

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

Ответы [ 7 ]

32 голосов
/ 16 августа 2011

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

using Rppr = Namespace.To.RelocatedPlantProductReleaseItem;

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

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

7 голосов
/ 16 августа 2011

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

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

using ShortName = Namespace.ReallyLongClassNameGoesHereOhGodWhy;

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

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

4 голосов
/ 16 августа 2011

Попробуйте

using Rppr = SomeNamespace.RelocatedPlantProductReleaseItem;

Ссылка

2 голосов
/ 16 августа 2011

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

using Rppr = RelocatedPlantProductReleaseItem;
1 голос
/ 16 августа 2011

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

 using Rppr = MyProjectNs.RelocatedPlantProductReleaseItem;

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

1 голос
/ 16 августа 2011

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

using alias = LongClassName;

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

0 голосов
/ 16 августа 2011

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

using Rppr = YourItemsNamespace.RelocatedPlantProductReleaseItem;
...