Рассмотрим как преобразовать типа int
в enum
в C#, для различных версий .NET Framework и .NET Core.
.NET Framework 2.0 и выше:
Для преобразования типа int
в тип enum
в .NET Framework 2.0 и выше, можно использовать методы Enum.ToObject
и Enum.IsDefined
. Первый используется для преобразования типа int
в тип enum
, второй же используется для проверки, является ли целое число допустимым значением для типа enum
.
Рассмотрим пример:
enum DaysOfTheWeek { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }
int dayAsInt = 3;
if (Enum.IsDefined(typeof(DaysOfTheWeek), dayAsInt))
{
DaysOfTheWeek dayAsEnum = (DaysOfTheWeek)Enum.ToObject(typeof(DaysOfTheWeek), dayAsInt);
// Используйте dayAsEnum как enum
}
else
{
// Число не допустимо к преобразованию, ошибку можно обработать тут
}
Code language: JavaScript (javascript)
.NET Framework 1.0 и 1.1:
В этих версиях .NET Framework методы Enum.ToObject и Enum.IsDefined недоступны. Чтобы преобразовать тип int в тип enum, можно использовать приведение типов:
enum DaysOfTheWeek { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }
int dayAsInt = 3;
DaysOfTheWeek dayAsEnum = (DaysOfTheWeek)dayAsInt;
Однако имейте в виду, что если приводимое значение int не является допустимым значением для перечисления, будет выдано исключение.