C# 将MyEnum.MyValue.ToString()自动重构为nameof(MyEnum.MyValue)

C# 将MyEnum.MyValue.ToString()自动重构为nameof(MyEnum.MyValue),c#,visual-studio,refactoring,resharper,automated-refactoring,C#,Visual Studio,Refactoring,Resharper,Automated Refactoring,在整个代码库中,我们使用的语法如下: MyEnum.MyValue.ToString() 从中获取字符串值“MyValue” 根据,我想重构这些调用,以使用编译时的、性能更高的nameof()语法,如下所示: nameof(MyEnum.MyValue) 有没有一种方法可以使用ReSharper、visualstudio等来帮助进行重构?我目前正在使用这两个产品的最新版本,默认情况下,我没有提供任何工具提示来执行此重构。我唯一能想到的就是使用一个定制的正则表达式find and replac

在整个代码库中,我们使用的语法如下:

MyEnum.MyValue.ToString()
从中获取字符串值“MyValue”

根据,我想重构这些调用,以使用编译时的、性能更高的
nameof()
语法,如下所示:

nameof(MyEnum.MyValue)
有没有一种方法可以使用ReSharper、visualstudio等来帮助进行重构?我目前正在使用这两个产品的最新版本,默认情况下,我没有提供任何工具提示来执行此重构。我唯一能想到的就是使用一个定制的正则表达式find and replace。我希望能有一个正则表达式的答案,但我希望能有更简单的答案


更新:名称
MyEnum
MyValue
只是一个示例。我正在寻找一种适用于所有枚举名和枚举值名的通用解决方案。

我认为这是不可能的。您是否尝试尽可能明确地搜索和替换?我认为一个简单的字符串替换应该可以工作,因为您的字符串
MyEnum.MyValue.ToString()
似乎足够独特。是的,搜索和替换可以工作,但需要一些奇特的正则表达式(我对它持开放态度,我只是不擅长正则表达式),或者为每个枚举值找到并替换完全唯一的值。@Meikel无意冒犯,但我敢猜测,戴维格是一个更值得信赖的人source@Meikel我很清楚这一点(我在这里是C#金牌持有者!),但在我的书中,仅仅为了将来的重构而这样做并不是一个很强的主张。@SLaks True,但我们几乎肯定在这里谈论微观优化。在一个大型代码库中修复数百个这样的代码所需的时间可能比编译和运行时节省的时间还要多:)
nameof(MyEnum.MyValue)