Хорошо, по какой-то причине я не могу решить эту маленькую проблему.
У меня есть следующее перечисление:
public enum EFeedType
{
TypeOne = 1,
TypeTwo = 2
}
Теперь я собираюсь получить числовое значение из базы данных. Что ж, мне нужно привести значение int из БД к типу enum:
EDIT:
Тип базы данных целочисленный, поэтому мне не нужно приводить из строки.
КОНЕЦ РЕДАКТИРОВАНИЯ
EFeedType feedType = (EFeedType) feedId;
Однако, когда я делаю это и передаю значение 2, я получаю следующую ошибку:
Ошибка проверки экземпляра: '2' не является допустимым значением для [Namespace Goes Here] .EFeedType.
Есть мысли о том, что я могу делать неправильно или пропустить?
EDIT
Вот код, который я использую:
//GetFeed will return an int value which is pulled from the database
int feedId = new FeedEngine().GetFeed("FeedName");
//Convert the ID to the Enum
EFeedType feedType = (EFeedType) feedId;
//Set the User Control FeedType Enum to the enum
FeedControl.FeedType = feedType;
//Show the user control
FeedControl.Visible = true;
РЕДАКТИРОВАТЬ - Подробнее
Хорошо, увидев ответ JSkeet, я вижу, что если мой feedId = 1, тогда он будет устанавливать значение перечисления в TypeTwo вместо TypeOne, как должно. Может быть, мне нужно значение по умолчанию = 0 в моем перечислении, чтобы это работало? Но должен быть лучший способ, потому что, если мои значения не в последовательности.