У меня есть перечисление, которое выглядит следующим образом:
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, и написание одного и того же метода для них раздражает, мягко говоря. Предположительно, все перечисления наследуются от System.Enum , но если я пытаюсь установить это как тип ввода, я получаю ошибки компиляции. Это также в .NET 1.1, так что об универсальных модулях не может быть и речи.
Я боролся с этим некоторое время. У кого-нибудь есть лучший способ написания этого метода? Кроме того, кто-нибудь может прояснить, что все перечисления наследуются от System.Enum, но не являются ли они полиморфными?