У системы есть простое перечисление, подобное этому,
public enum SomeEnum : short
{
Ok = 0,
Missing = 17,
};
Это перечисление теперь находится в ситуации, когда мне нужно замаскировать в него дополнительную информацию без изменения внешнего вида существующих значений перечисления.Перечисление получит несколько новых значений,
[Flags]
public enum SomeEnum : short
{
Ok = 0,
Missing = 17,
Blocking = 18, // Values could be anything
Low = 19, // Values could be anything
};
Я боялся, что могут быть проблемы с текущим использованием перечисления.Похоже, я прав, но Я надеюсь, что с вашей помощью я ошибся .Использование до сегодняшнего дня построено вокруг SomeEnum.Ok
.Также завтра, но хорошо нужна дополнительная информация.Мне нужно замаскировать значения перечисления, не влияя на его текущее поведение, которое может исходить из любой общей ссылки;
someEnumVariable.ToString()
(int)someEnumVariable
someVar = SomeEnum.Ok
Enum.Parse(typeOf(SomeEnum), someString)
Если я отмечу перечисление с помощью
var test = (SomeEnum.Ok | SomeEnum.Blocking);
Оба флага могут быть установлены, т.е. test.HasFlags(SomeEnum.Ok)
или test.HasFlags(SomeEnum.Blocking)
, но перечисление представляется как SomeEnum.Blocking, что невозможно.
Есть идеи?