Como posso usar a instrução switch no padrão de enumeração de tipo seguro

Eu encontrei um bom exemplo sobre enums de implementação de uma maneira diferente. Isso é chamadopadrão de enumeração com segurança de tipos eu acho que. Comecei a usá-lo, mas percebi que não posso usá-lo em uma declaração switch.
Minha implementação é semelhante ao seguinte:

<code>public sealed class MyState
{
    private readonly string m_Name;
    private readonly int m_Value;

    public static readonly MyState PASSED= new MyState(1, "OK");
    public static readonly MyState FAILED= new MyState(2, "ERROR");

    private MyState(int value, string name)
    {
        m_Name = name;
        m_Value = value;
    }

    public override string ToString()
    {
        return m_Name;
    }

    public int GetIntValue()
    {
        return m_Value;
    }
}
</code>

O que posso adicionar à minha turma para poder usar esse padrão eminterruptor declarações em c #?
Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion