Реальная причина не в производительности, которая измеряется в миллиардных долях секунды, если она вообще имеет какой-либо эффект.
Настоящая причина в том, что метод экземпляра, который не использует его экземпляр, логически является недостатком проекта. Предположим, я написал вам метод:
class C
{
public int DoubleIt(int x, string y, Type z)
{
return x * 2;
}
}
Это хорошо разработанный метод? Нет. Требуется вся информация, которую он затем игнорирует и не использует для вычисления результата или выполнения побочного эффекта. Зачем заставлять абонента передавать ненужную строку и вводить?
Теперь обратите внимание, что этот метод также принимает C, в форме «this», переданного в вызов. Это также игнорируется. Этот метод должен быть статическим и принимать один параметр.
Хорошо разработанный метод принимает именно ту информацию, которая ему необходима для вычисления результатов и выполнения побочных эффектов, не больше и не меньше. Решарпер говорит вам, что у вас есть недостаток дизайна в вашем коде: у вас есть метод, который принимает информацию, которую он игнорирует. Либо исправьте метод, чтобы он начал использовать эту информацию, либо прекратите передачу бесполезных данных, сделав метод статичным.
Опять же, проблема производительности - это полная красная сельдь; Вы никогда не заметите столь малую разницу, если только то, что вы делаете, не займет порядка нескольких процессорных циклов. Причина предупреждения заключается в том, чтобы обратить ваше внимание на логический недостаток дизайна. Правильное понимание логики программы гораздо важнее, чем отсечка наносекунды здесь и там.