С учетом кода ниже:
static void Main()
{
Console.WriteLine(typeof(MyEnum).BaseType.FullName);
}
enum MyEnum : ushort
{
One = 1,
Two = 2
}
Он выводит System.Enum, что означает, что двоеточие здесь не имеет ничего общего с наследованием, и оно просто указывает основной тип перечисления, правильно ли я?
Но если я изменю свой код следующим образом:
enum MyEnum : UInt16
{
One = 1,
Two = 2
}
Я получаю ошибку компиляции. Зачем? Не UInt16
и ushort
то же самое?