Измените серьезность проверки ReSharper один раз - PullRequest
0 голосов
/ 22 мая 2018

Я хочу изменить уровень проверки для одного случая

Скажем, у меня есть enum

enum MyEnum { First, Second, Third }

, а затем переключатель

void Foo(MyEnum value)
{
    // Looking for something like
    // Resharper once severity:error SwitchStatementMissingSomeCases
    switch (value)
    {
        case MyEnum.First:
            // do something
            break;
        case MyEnum.Second:
            // do something else
            break;
        // <<< Missing MyEnum.Third
        default:
            throw new ArgumentOutOfRangeException();
    }
}

Я хочу, чтобы этот кодвыдать ошибку компиляции.Возможно ли это?

Я понимаю, что можно сделать что-то вроде кода ниже, но я хочу знать, что во время компиляции отсутствует пропущенный случай

void Bar()
{
    // do something
}

void Baz()
{
    // do something else
}

Dictionary<MyEnum, Action> Handlers = new Dictionary<MyEnum, Action>
{
    [MyEnum.First] = Bar
    [MyEnum.Second] = Baz
}

void Foo(MyEnum value)
{
    if (! Handlers.TryGetValue(value, out Action action))
        throw new ArgumentOutOfRangeException();

    action();
}

UPD : I не хочу установить серьезность глобальной проверки

UPD2 У меня есть 50 переключателей (для других перечислений), где отсутствующий регистр не имеет большого значения итолько пара ключей, где пропущенный регистр должен быть ошибкой компиляции.Можно установить глобальный уровень на ошибку и отключить ошибку 50 раз, но ... немного некрасиво

UPD3 К сожалению, сейчас нет способа сделать это (22.05.2018) Комментарий 1 Комментарий 2

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

К сожалению, нет способа сделать это сейчас (22.05.2018) с простым комментарием

0 голосов
/ 22 мая 2018

Если я вас правильно понял, вам просто нужно нажать на лампу Resharper и настроить ее, чтобы добавить пропущенные случаи и серьезность (Ошибка), enter image description here

...