Ответ 1
Я сомневаюсь, что изменение типа возврата без вызова с использованием каких-либо членов экземпляра действительно решает проблему. Я подозреваю, что для того, чтобы изменить тип возвращаемого значения, вы изменили оператор return на то, что обращалось к члену экземпляра.
Теперь я не знаю, будет ли обработка маршрута в MVC позволять вам пометить метод как статический, но его стоит исследовать. Несмотря на то, что предупреждение дается с точки зрения производительности, я бы подумал об этом с точки зрения намерения и удобочитаемости.
Обычно для метода или свойства есть две причины быть членом экземпляра (а не статическим):
- Ему нужно получить доступ к другому члену экземпляра, потому что способ его поведения зависит от состояния объекта
- Он должен вести себя полиморфно на основе фактического типа вызываемого им экземпляра, так что поведение может быть переопределено
Если это не так, то метод можно сделать статическим, что указывает на отсутствие ожидаемого полиморфизма и отсутствие состояния экземпляра. Статический член эффективно рекламирует, что единственным состоянием, от которого оно зависит, является состояние самого типа (и параметров) и что он не будет вести себя полиморфно. Помимо всего прочего, это означает, что вы можете протестировать его, не создавая экземпляр вообще.
Конечно, если инфраструктура MVC требует, чтобы это был метод экземпляра, вы должны просто подавить предупреждение с комментарием, чтобы указать этот факт.