Псевдоним в .NET - PullRequest
       6

Псевдоним в .NET

5 голосов
/ 15 февраля 2011

Можно ли создать псевдоним для существующих типов и использовать этот псевдоним в проекте?

Например, создать

CustomerID = System.UInt32

и использовать CustomerID в качестве типа данных?

Версия: .NET Framework 4.0

(С помощью ключевого слова "using" мы сможем создать псевдоним, но это бесполезно, так как не работает с файлами.)

Есть еще идеи?

Ответы [ 2 ]

4 голосов
/ 15 февраля 2011

Я считаю, что правильный ответ на этот вопрос:

Нет, это (к сожалению?) Невозможно. (


Редактировать 1: Однако , вы можете (вроде) имитировать это, делая свои собственные struct и предоставляя неявные преобразования в / из нужного вам типа. Это не совсем волшебно, но может работать в зависимости от ситуации.


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

0 голосов
/ 16 февраля 2011

Это не представляется возможным. Однако по какой причине вы хотите это сделать?

Если ваша причина удобочитаемость , рассмотрите следующее:

Вы уже можете использовать свои идентификаторы, чтобы указать, например, это. customerID. То, что вы, по сути, делаете, когда пытаетесь переименовать UInt32 в CustomerID, делает его похожим на новый тип. Только когда типу требуется дополнительное поведение или значения, полезно считать его «новым» типом. Если вы когда-либо разрабатывали на C ++, вы можете оценить соглашение , вызванное тем, что вы не допустили этого в C #. Вы знаете, чего ожидать от UInt32.

Если ваша причина подготовка себя к изменениям :

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...