【发布时间】:2019-10-17 10:15:58
【问题描述】:
我正在尝试用(现有的)枚举值替换一些神奇的 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 值替换为它们对应的枚举。
【问题讨论】:
-
我看不出自动化工具如何区分应该转换为枚举的数字和不应转换为枚举的相同数字...
-
您可以将
myType = 2;替换为myType = (TypeA) 2;,这将保持旧值不变,新代码将被强类型化。如果您必须更改很多地方,这可能是一个更快的解决方案。 -
@tymtam 这是个好主意!但仍然:我必须查找
TypeA以获取我手动替换的任何值。我理想的工作流程是这样的:将myType的类型更改为MyEnum,然后神奇地将任何已知的int值替换为它们对应的枚举... -
我不知道有任何这样的工具,FWIW
-
您可以尝试从 VS 内部或外部在您的 repo 上运行 powershell 脚本。只需扫描所有 .cs 文件,进行模式匹配并替换所有出现。但是,是否有任何您不想替换的 int 变量?
标签: c# visual-studio refactoring resharper