快速用枚举值替换int

时间:2019-10-17 10:15:58

标签: c# visual-studio refactoring resharper

我正在尝试用(现有的)枚举值替换一些不可思议的int数。有很多事情发生,所以我想知道是否有一个快捷方式或插件可以加快这一过程。

示例:

int myType;
//...
myType = 2;

此类型有一个枚举:

enum MyEnum
{
    TypeA = 1,
    TypeB = 2,
    //...
}

最后,这是我要实现的目标:

MyEnum myType;
//...
myType = MyEnum.TypeB;

我可以手动执行此操作,没问题。但是然后我总是必须在枚举中搜索正确的值,复制/粘贴该值,等等。这花了很长时间。

是否存在可以加快此过程的Visual Studio / Resharper快捷方式或插件?


编辑:我不需要完全自动化的过程。这是加快此过程的好方法。

尤其是这部分:

MyEnum myType = (MyEnum) 2;

是否没有工具将(MyEnum) 2替换为MyEnum.TypeB

我理想的工作流程是这样的:将myType的类型更改为MyEnum,然后神奇地将所有已知的int值替换为它们的对应枚举。

2 个答案:

答案 0 :(得分:0)

您可以使用Visual Studio本身的“查找和替换文本”工具。

  

https://docs.microsoft.com/es-es/visualstudio/ide/finding-and-replacing-text?view=vs-2019

您必须找到并替换整个解决方案:

(MyEnum) 1 with MyEnum.TypeA 
(MyEnum) 2 with MyEnum.TypeB

您只需要稍后检查某些CS类中是否有空间。

(MyEnum)1 with MyEnum.TypeA 
(MyEnum)2 with MyEnum.TypeB

答案 1 :(得分:0)

用于自动执行(MyEnum)2; ---> MyEnum.TypeB

A。搜索并替换

您可以运行一系列“搜索并替换”:

  1. \(MyEnum\) 1MyEnum.TypeA
  2. \(MyEnum\) 2MyEnum.TypeB
  3. (...)

肯定有人可以证明一种更好的正则表达式,可以一次性替换多个值。

B。应用

编写一个C#应用程序,该程序将读取所有文件并替换

(MyEnum) number`

类似

$"MyEnum.{((MyEnum)number).ToString()}"