ReSharper всегда просит изменить System.Action на System.Action <T> - PullRequest
8 голосов
/ 11 марта 2011

Использование VS2010 и ReSharper 5

У меня есть метод, который возвращает System.Action

private Action ExtractFile()
{
    return delegate
    {
        MessageBox.Show("Test");
    };
}

ReSharper, по некоторым причинам, имеет тенденцию показывать мнеИсправление: тип возвращаемого значения метода должен быть сопоставлен с System.Action<T> или одним из его вариантов.Кажется, он не распознает неуниверсальную версию!VS соблюдает и не жалуется на это!

Когда я наводю курсор мыши на красную фигурную линию, показанная подсказка показывает

Неправильное количество параметров типа.
Кандидаты:void System.Action (T)
void System.Action (T1, T2) ...
... и список продолжается до T1-T16

Есть идеи? See the return type highlighted by ReSharper

1 Ответ

2 голосов
/ 13 марта 2011

Мне кажется, что вам нужно обновить ReSharper до последней версии, то есть версии 5.1. Если у вас есть элементы, которые не загружены ReSharper (то есть проверьте список исключенных элементов), он пометит их как неизвестные, даже если ваш код допустим и ссылается на элементы.

Вы можете попробовать очистить кэш или сбросить настройки по умолчанию.

На скриншоте не отображалась вьющаяся строка в разделе «делегат», но с настройками по умолчанию следует предложить переписать код следующим образом (но это не обязательно лучше):

private Action ExtractFile()
{
    return () => MessageBox.Show("Test");
}

Если все не удалось, нажмите на маленькую лампочку слева (или нажмите Alt + Enter). Выберите «Параметры проверки для ...» и измените серьезность или выберите игнорировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...