Добавление конструктора (или функции) в перечисление

Я не уверен, что конструктор - это именно то, что я ищу, но если я объясню, что я пытаюсь сделать, надеюсь, кто-нибудь скажет мне, пытаюсь ли я сделать это глупая идея или есть способы сделать это.

Итак, у меня есть перечисление:

public enum MessageType
{
    Normal, 
    Error, 
    Chat, 
    Groupchat, 
    Headline
}

Это перечисление в основном является оболочкой для jabber.net MessageType . Итак, я хочу создать из этого свое перечисление. Итак, на данный момент у меня есть такая функция:

private MessageType ConvertMessageType(JabberMessageType jabberType)
{
    MessageType type = MessageType.Error;

    switch (jabberType)
    {
        case JabberMessageType.normal:
            type = MessageType.Normal;
            break;

        //etc
    }

    return type;
}

Поэтому я должен использовать перечисление MessageType type = ConvertMessageType (JabberMessageType.groupchat);

Я бы хотел, чтобы у меня было что-то вроде:

enum MessageType type = MessageType(JabberMessageType.groupchat);
// or 
enum MessageType type = MessageType.FromJabberJid(JabberMessageType.groupchat);

Таким образом, преобразование относится к перечислению, а не является методом вне его.

13
задан Connell 10 November 2011 в 12:47
поделиться