C# compiled classes don't use enum to_i casting
Hi again, seems like I've spotted another bug. Correct me if I'm wrong ;)

Given the following KSY snippet:
```yaml
- id: payload
  type:
    switch-on: _parent.msg_id
    cases:
      'some_enum::set_a.to_i': type_a
      'some_enum::set_b.to_i': type_b
```

I get the following in C#:

```csharp
public KaitaiStruct Payload
            {
                get
                {
                    if (f_payload)
                        return _payload;
                    switch (M_Parent.MsgId) {
                    case Packet.SomeEnum.SetA: {
                        _payload = new TypeA(m_io, this, m_root);
                        break;
                    }
                    case Packet.SomeEnum.SetB: {
                        _payload = new TypeB(m_io, this, m_root);
                        break;
                    }
                    f_payload = true;
                    return _payload;
                }
            }
```

I get the following errors:
```
error CS0266: Cannot implicitly convert type 'Kaitai.Packet.SomeEnum.SetA' to 'byte'.
error CS0266: Cannot implicitly convert type 'Kaitai.Packet.SomeEnum.SetB' to 'byte'.
```

To me, it seems like the `to_i` cast is missing from the switch cases and should look something like this:

```csharp
public KaitaiStruct Payload
            {
                get
                {
                    if (f_payload)
                        return _payload;
                    switch (M_Parent.MsgId) {
                    case ((int)Packet.SomeEnum.SetA): {
                        _payload = new TypeA(m_io, this, m_root);
                        break;
                    }
                    case ((int)Packet.SomeEnum.SetB): {
                        _payload = new TypeB(m_io, this, m_root);
                        break;
                    }
                    f_payload = true;
                    return _payload;
                }
            }
```