Как исправить A constant value is expected в Switch case?

173
26 июля 2019, 20:10

Есть класс EventType:

public class EventType
{
    public const int UnhandledException = 601;
    private int currentEventId;
    public EventType(int eventId)
    {
        currentEventId = eventId;
    }
    public static implicit operator EventType(int eventId)
    {
        return new EventType(eventId);
    }
    public static bool operator ==(EventType eventType, int eventId)
    {
        return eventType.currentEventId == eventId;
    }
    public static bool operator !=(EventType eventType, int eventId)
    {
        return eventType.currentEventId != eventId;
    }
}

В одном месте я использую Switch Case:

EventType eventType = new EventType(102);
switch (eventType)
{
    case EventType.UnhandledException:
        break;
}

Здесь компилятор задаёт ошибку A constant value is expected как это исправить? Сразу хочу сказать, что нельзя преобразовать класс в enum!

Answer 1

Мои извинение, я чуть поторопился с вопросом, решил его добавив метод:

public static implicit operator int(EventType eventType)
    {
        return eventType.currentEventId;
    }
READ ALSO
Отношение один к разным типам объектов

Отношение один к разным типам объектов

Я не знаю, есть ли какой-то готовый термин, поэтому в заголовок вынес "один-к-разным-типам-объектов", но это не термин из EF-диаграмм (один-ко-многим,...

135
Как проксировать сайт с заданными cookies?

Как проксировать сайт с заданными cookies?

Есть сервис например: myservicecom, я авторизован в этом сервисе

149
Сохранит куки curl php

Сохранит куки curl php

Почему такой код не сохраняет куки?

157
Копирование строк таблицы mysql php

Копирование строк таблицы mysql php

Как скопировать одну строку таблицы в эту же таблицу?

157