У нас есть устаревшие коды символов, которые мы хотим сохранить в виде чисел в новой системе. Чтобы улучшить читаемость и общее понимание кода для разработчиков, выполняющих миграцию, я хочу сделать Enums следующим образом ...
Public Enum Status As Short
Open = AscW("O")
Closed = AscW("C")
Pending = AscW("P")
EnRoute = AscW("E")
End Enum
При такой настройке код будет читабелен (представьте If Record.Status = Status.Open
), и все же значения будут храниться в базе данных в виде небольших чисел, что будет эффективно Однако ... Я парень из VB.NET, но все хотят писать код на C #, поэтому мне нужна такая структура в C #.
После поиска в Google я обнаружил, что общий .NET-эквивалент AscW
равен Convert.ToInt32("C")
. Когда я пытаюсь использовать этот оператор в перечислении, я получаю ошибку компилятора «Требуется постоянное выражение».
Как я могу сделать это в C #? Есть ли лучший способ?