преобразование перечислимых типов

простые типы значение в тип enum

преобразование
из типа
в тип
sbyte byte short ushort int uint long ulong char float double decimal enum
Если тип перечисления (например ushort) меньше типа переменной (например long) и значение превышает допустимы диапазон (4294967295), то происходит потеря данных.
Дробные значения всех десятичных типов переменных усекаются, остаются только целые значения.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • public enum En : long {};
  •  
  • class Program {
  •  public static int Main() {
  •  
  •   sbyte sbyteVal = -128;
  •  
  •   //из типа sbyte в тип En
  •   En E = (En)sbyteVal;
  •   Console.WriteLine(E);
  •  
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
-128

тип enum в простые типы значений

преобразование
из типа
в тип
enum sbyte byte short ushort int uint long ulong char float double decimal
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • public enum En : long {Ten=-10};
  •  
  • class Program {
  •  public static int Main() {
  •  
  •   //из типа En в тип sbyte
  •   sbyte sbyteVal = (sbyte)En.Ten;
  •   Console.WriteLine(sbyteVal);
  •  
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
-10

из типа enum в тип enum

Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //по умолчанию тип int, если тип не указан явно
  • public enum One {};
  • public enum Two : long {Ten=-10};
  •  
  • class Program {
  •  public static int Main() {
  •  
  •   //из типа Two в тип One
  •   One O = (One)Two.Ten;
  •   Console.WriteLine(O);
  •  
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
-10