¿Cómo puedo usar la instrucción switch en un patrón de enumeración de tipo seguro?

Encontré un buen ejemplo de enums de implementación de una manera diferente. Eso es llamadopatrón de enumeración de tipo seguro Yo creo que. Comencé a usarlo pero me di cuenta de que no puedo usarlo en una instrucción de cambio.
Mi implementación se parece a la siguiente:

<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>

¿Qué puedo agregar a mi clase para poder usar este patrón encambiar declaraciones en C #?
Gracias.

Respuestas a la pregunta(3)

Su respuesta a la pregunta