次のような列挙型があります。
public enum TransactionStatus { Open = 'O', Closed = 'C'};
そして、私はデータベースからデータを引き出しており、1 文字で (ご想像のとおり) '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 から継承されていることを明確にすることはできますが、ポリモーフィックなものではありませんか?