none
Псевдонимы(алиасы) в перечисления - правила использования RRS feed

  • Вопрос

  • Всем привет! Сейчас изучаю перечисления в c# и хотел спросить, почему в с#  можно использовать псевдоним для любого целого типа данных 

    (byte, sbyte, short, ushort, int, uint, long, ulong) , но нельзя 

     использовать любой системный целый тип данных C# (Byte, SByte, Int16, UInt16, Int32,  UInt32, Int64, UInt64) ?

    Когда я смотрел видео урок, то там был такой пример-объяснение: "Представте себе ситуацию в которой возможно, Вы захотите отказаться от Framework-ов предоставляемых Microsoft в языке c# и отключите импорт всех библиотек и в том числе импорт библиотеки System, и решите создавать свои типы. Вы ведь можете создавать свои типы? Конечно же да, но при этом у вас должны остаться простейшие типы данных. Так вот, простейшие типы даннных(даже при отключенной библиотеке System) у вас все же останутся, но в виде алиасов, а не в виде полноценной структуры (например byte) которая входит в пространство имен System. ".Почему при таком подробном описании ситуации я это все спрашиваю? Дело в том, что далее по уроку автор уделил теме алиасов еще некоторое время (а сам автор страдает забывчивостью сказать что то важное и иногда к сожалению обладает некоторой степенью недосказанности по некоторым вопросам)

    Вот в чем мой вопрос: Есть ли еще причины (помимо вышеприведенного примера) почему в перечислениях используют алиасы(псевдонимы)?
    • Изменено BadCatss 17 февраля 2016 г. 18:00
    17 февраля 2016 г. 17:47

Ответы

  • Добрый день.

    Открываем эту статью и что мы там видим? А вот что:

    Перечислением называется набор именованных констант любого целочисленного типа за исключением Char.

    Если тип не указан, то используется Int32.

    Enum является базовым классом для всех перечислений в .NET Framework.

    По умолчанию Int32. Да и вот такая штука комплится без проблем:

    enum Test : Int32
    {
        a  = 10
    }
    Что не так?

    • Помечено в качестве ответа BadCatss 22 февраля 2016 г. 17:36
    19 февраля 2016 г. 10:47
    Отвечающий