Можно ли получить тип псевдонима типа в C #? - PullRequest
7 голосов
/ 26 ноября 2008
Type.GetType("System.String")

Есть ли где-нибудь поиск псевдонимов?

Type.GetType("string")

возвращает null.

Ответы [ 3 ]

15 голосов
/ 26 ноября 2008

Это невозможно программно, поскольку «псевдонимы» фактически являются ключевыми словами, введенными в C #, а Type.GetType (как и любой другой метод фреймворка) является частью независимой от языка фреймворка.

Вы можете создать словарь со следующими значениями:

    bool      System.Boolean
    byte      System.Byte
    sbyte     System.SByte
    char      System.Char
    decimal   System.Decimal
    double    System.Double
    float     System.Single
    int       System.Int32
    uint      System.UInt32
    long      System.Int64
    ulong     System.UInt64
    object    System.Object
    short     System.Int16
    ushort    System.UInt16
    string    System.String
2 голосов
/ 26 ноября 2008

Псевдонимы (int, bool и т. Д.) Не определены в CLS. Это просто константы времени компиляции, которые заменяются во время выполнения. Это означает, что к тому времени, когда ваша программа работает, и вы можете делать что-то «программно», псевдонимы уже ушли.

Type.GetType(typeof (string).ToString())
2 голосов
/ 26 ноября 2008

«Псевдонимы» являются частью определения языка. Вам необходимо найти их в языковой спецификации , о которой идет речь. Они компилируются и не существуют во время выполнения - строка становится System.String, int становится System.Int32 и т. Д.

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