Как enum'у назначить regex "любое число"(См.описание)?

public enum Types{
SomeChar = 'D',
Number = ..//нужно чтобы Number соответствовал любому(!) целому/дробному числу
}
  • Вопрос задан
  • 365 просмотров
Решения вопроса 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
В перечислениях допустимы только целочисленные значения (byte, sbyte, short, ushort, int, uint, long и ulong), либо char.

Как вариант, одно из значений элемента перечисления может означать, что это значение должно соответствовать любому числу. Но для этого потребуется написать код, который сможет правильно интерпретировать такое значение.

Вместо перечислений можно использовать константы (const) или readonly переменные. В последнем случае возможности по использованию различных типов данных не ограничены, в отличие от констант. Код для проверки все равно придется написать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
В enum - никак.
Ответ написан
Комментировать
@cicatrix
было бы большой ошибкой думать
Алексей Немиро абсолютно верно заметил, что
В перечислениях допустимы только целочисленные значения (byte, sbyte, short, ushort, int, uint, long и ulong), либо char.


Но можно схитрить, создав структуру или класс, содержащую набор строковых констант (особого смысла для компилятора в этом нет, но для читаемости кода и последующей поддержки - очень удобно):
struct STRING_ENUMERATION
{
    public const string ENUM_A = "Это строка перечисления";
    public const string ENUM_B = "Это другая строка перечисления";
}

class Program
{
    static void Main(string[] args)
    {
        string myVar = STRING_ENUMERATION.ENUM_A;
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы