Подтвердить что ты не робот

Почему команда метода extract в visual studio создает статические методы?

Почему Visual Studio по умолчанию создает частный статический метод при рефакторинге кода и выборе метода извлечения?

Если я рефакторинг нестатического класса, и метод доступен только в классе, почему он статичен?

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

Можно ли просто показать, что метод не полагается на какие-либо переменные-члены класса?

4b9b3361

Ответ 1

Почему Visual Studio по умолчанию создает частный статический метод при рефакторинге кода и выборе метода извлечения?

Это делается только в том случае, если ваш метод не имеет доступа к элементарным переменным/методам/свойствам. Это хорошо, потому что он в основном работает по принципу наименьших допущений: поскольку вы не получаете доступа к данным, специфичным для экземпляра, также может сделать метод static.

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

Теоретически, может быть, но я в этом сомневаюсь. Тем не менее, при создании метода static становится ясно, что он не будет обращаться к данным экземпляра или изменять его, что я нашел полезный намек.

Ответ 2

Создание статического метода можно рассматривать как повышение производительности, потому что нет указателя "this" для передачи в качестве переменной. Я использую ReSharper и всегда рекомендует превращать методы в static, если они не относятся к переменной класса.