2009-02-04 3 views
19

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

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

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

Является ли это возможностью для простоты показать, что метод не зависит от каких-либо переменных-членов класса?

ответ

27

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

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

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

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

1

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

Смежные вопросы