rename class with file name in one step in Visual

2019-04-18 14:03发布

I am a long year Java programmer, but currently I code in C#. I am accustomed, that when I change filename, also the class name changes and vice versa. This doesn't work in my Visual Studio. I must rename the class name and file name separately, and it's sometimes annoying for me, because I always forget on it, so it results to that I have different class and file names. Is there option in Visual Studio to put the renaming in one step?

5条回答
你好瞎i
2楼-- · 2019-04-18 14:15

Renaming a file works fine - it'll offer to change the code to match:

enter image description here

If you rename the class, then - indeed, this doesn't happen by default. There is no actual need for the two to match, note. But ultimately, rename is only an f2 away.

查看更多
戒情不戒烟
3楼-- · 2019-04-18 14:18

As of Visual Studio 2015 Preview 5, the "Quick Actions and Refactorings" context menu contains a "Rename file to [class].cs" command.

查看更多
地球回转人心会变
4楼-- · 2019-04-18 14:19

Install the awesome visual studio plugin called Reshaper. It does that and loads of other nice stuff. Free for 30 days then its costs but is definitely worth it.

查看更多
干净又极端
5楼-- · 2019-04-18 14:32

If you 'refactor' something, the name will be changed everywhere where that text or name has been used so you don't have to follow up changing the name every time its been used. However, you cannot do that with objects beyond the project eg: file name.

查看更多
6楼-- · 2019-04-18 14:33

It seems to not work when the copied file is in the same folder and the class name is the same (which it will be if you just copied the file). I think the reasoning may be that rename doesn't descriminate between a class in a newly copied file and the original (See comment below by @xMichal).

The quick solution is to copy the file (I use ctrl+drag) into a nearby folder, rename, then move it back.

Another option (which may be Resharper specific), is to rename the class (and constructors) in the copied file, then use the tooltip to electively rename the file to match.

查看更多
登录 后发表回答