Игнорировать «Не удается разрешить символ» в Resharper - PullRequest
2 голосов
/ 01 октября 2010

Скажем, у меня есть подпись метода, подобная этой:

protected override void Initialize(params object[] parameters)

... и объект может точно обрабатывать все параметры. Когда я проверяю эти параметры (скажем, устанавливаю их в полях класса), и один из них null, я бы хотел сделать что-то подобное без предупреждения от ReSharper:

if (parameters[5] == null)
    /* Yields:  Cannot resolve symbol 'knownParameterName' */
    throw new ArgumentNullException("knownParameterName");

В контексте моего приложения это предупреждение нормально. Кто-нибудь знает, какое правило я должен игнорировать?

Ответы [ 2 ]

1 голос
/ 01 октября 2010

Вы пытались поместить имена параметров в статический строковый массив только для чтения и вызвать

throw new ArgumentNullException(initializationParameterNames[5]);

?

Вы можете сделать это так:

protected override void Initialize(params object[] parameters) 
{
    for (int paramIndex = 0; paramIndex < initializationParameterNames.Length; paramIndex++)
    {
        if (parameters.Length <= paramIndex)
            throw new ArgumentException("Missing " + initializationParamterNames[paramIndex]);
        if (parameters[paramIndex] == null)
            throw new ArgumentNullException(initializationParameterNames[paramIndex]);
    }
    ...
}
0 голосов
/ 01 октября 2010

Я не вижу ничего в опциях, которые бы управляли этим, по крайней мере, не отображается в диалоге опций. Вы пробовали спрашивать на форумах Resharper? Они довольно отзывчивы там.

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