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