Почему переименование файлов иногда реорганизует имена классов, а иногда нет?

Мне было любопытно, что иногда переименование файла запрашивает рефакторинг класса внутри и (чаще всего) иногда просто переименовывает файлы.

Ответ 1

Вот полный список из всех ответов, которые я мог проверить

Рефакторинг не будет срабатывать, если

  • пространство имен точно не соответствует соглашение (имя папки = namepsacename)

  • класс является общим

  • classname не соответствует имени файла

  • в файле

    имеется более одного класса.
  • есть ошибки в файле

  • файл находится в другом проекте

Ответ 2

Я думаю, что имя класса должно точно соответствовать имени файла. Это также может зависеть от того, компилируется ли ваш код в то время, хотя и не уверен в этой точке.

Ответ 3

В дополнение к тому, что сказал AndrewS, я считаю, что если у вас есть несколько классов в одном файле, он также не будет просить реорганизовать его.

Ответ 4

Могут возникнуть проблемы, когда унаследованный класс лежит в другой сборке. Для меня перезапуск VisualStudio иногда исправлял его.