Вопрос о наличии операторов в качестве значений в ENUM в C # - PullRequest
2 голосов
/ 14 января 2011

У меня есть файл конфигурации XML.некоторые узлы используются для вычислительных целей, и я планирую порвать значения, как показано ниже

<OPERATION>&GT;=</OPERATION> <!-- GREATER THAN OR EQUAL --> <VALUE>1</VALUE>
<OPERATION>&LT;=</OPERATION> <!-- LESSER THAN OR EQUAL --> <VALUE>1</VALUE>

Я использую этот XML в своем классе C #.Мне было интересно, могу ли я иметь ENUM для этих операторов?Это возможно?

Ура, Картик

1 Ответ

3 голосов
/ 14 января 2011

Предполагая, что вы используете сериализацию XML, вы можете попробовать использовать атрибут XmlEnum:

public enum Operation
{
    [XmlEnum(">")]
    GreaterThan,
    [XmlEnum("<")]
    LessThan,
    ...
}

Однако я не уверен, как он будет вести себя с этими конкретными символами... (я только что попробовал, все отлично работает)


РЕДАКТИРОВАТЬ

Если вы используете Linq для XML, вы можете просто декодироватьсимвол в значение перечисления путем вызова метода из вашего запроса:

Operation DecodeOperation(string s)
{
    switch(s)
    {
        case ">":
            return Operation.GreaterThan;
        case "<":
            return Operation.LessThan;
        ...
        default:
            return Operation.Unknown; // or throw exception...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...