Я знаю, что это старый вопрос, но эта информация была бы полезна для меня:
Похоже, что нет проблем с использованием char в качестве типа значения для перечислений в C # .NET 4.0 (возможно, даже 3.5, но я не проверял это) Вот что я сделал, и это полностью работает:
public enum PayCode {
NotPaid = 'N',
Paid = 'P'
}
Конвертировать Enum в char:
PayCode enumPC = PayCode.NotPaid;
char charPC = (char)enumPC; // charPC == 'N'
Конвертировать char в Enum:
char charPC = 'P';
if (Enum.IsDefined(typeof(PayCode), (int)charPC)) { // check if charPC is a valid value
PayCode enumPC = (PayCode)charPC; // enumPC == PayCode.Paid
}
Работает как шарм, как и следовало ожидать от типа char!