У меня есть перечисление, которое выглядит следующим образом:мне нужен вспомогательный метод для сравнения обугленного Enum и полукокса коробочного к объекту
public enum TransactionStatus { Open = 'O', Closed = 'C'};
и я потянув данные из базы данных с одного символом, указывающими - вы догадались, что «O» транзакция открыта или «C» транзакция закрыта.
сейчас, потому что данные поступают из базы данных как объект. У меня есть черт времени, сравнивающий код записи.
Лучшее, что я могу сделать, это написать:
protected bool CharEnumEqualsCharObj(TransactionStatus enum_status, object obj_status) {
return ((char)enum_status).ToString() == obj_status.ToString();
}
Однако, это не только перечисление символов, которые мне приходится иметь дело с, у меня есть 5 или 6 и сочинительство тот же метод для них это раздражает по меньшей мере. Supposedly all enums inherit from System.Enum, но если я попытаюсь установить это как тип ввода, я получаю ошибки компиляции. Это также в .NET 1.1, поэтому для генериков не может быть и речи.
Я боролся с этим некоторое время. У кого-нибудь есть лучший способ написать этот метод? Кроме того, может ли кто-нибудь прояснить, что все перечисления наследуются от System.Enum, но не являются ли они полиморфными?
Сэр, я приветствую вас, я не совсем уверен, почему эта подпись метода работает, когда у меня есть пытались, но вы просто потрясающие. –
Вы использовали (Enum e, ...) или (enum e, ...). Первый тип является типом, а последний - ключевым словом объявления. Легко перепутаться. –