如何在Visual Studio+Resharper中仅重命名当前项目的类
如何用Resharper仅在当前项目内重命名同名类?
我有一个包含多个项目的解决方案,项目A与项目B中都存在同名类ActorPool。使用Resharper的重命名功能(快捷键Ctrl+R→R)将项目B中的ActorPool重命名为ObjectPool时,项目A中的ActorPool类也被同步修改,不符合仅修改项目B的预期。重命名弹窗初始状态下看不到范围限制选项,可通过以下操作实现仅当前项目的重命名:
重构前后对比
重构前
项目A(ActorPool.h)
class ActorPool { // ... }
项目B(ActorPool.h)
class ActorPool { //... }
实际错误重构后
项目A(ObjectPool.h)
class ObjectPool { // ... }
项目B(ObjectPool.h)
class ObjectPool { //... }
预期重构后
项目A(ActorPool.h)
class ActorPool { // ... }
项目B(ObjectPool.h)
class ObjectPool { //... }
解决步骤
- 选中项目B中要重命名的
ActorPool类名,按下快捷键Ctrl+R→R打开重命名弹窗 - 点击弹窗右下角的展开箭头(显示「更多选项」的按钮),调出高级设置面板
- 在「重构范围」区域,选择「当前项目」选项;若需要更精细控制,也可手动勾选/取消勾选目标项目
- 查看弹窗上方的预览列表,确认只有项目B的相关文件在修改范围内
- 点击「应用」完成重构
额外提示
如果两个ActorPool类属于同一命名空间,Resharper可能默认判定为同一类型,此时可在预览窗口中直接取消勾选项目A的所有相关文件,再执行重构。
内容的提问来源于stack exchange,提问作者veteri
相关产品推荐
相关产品推荐

