【发布时间】:2015-08-28 03:24:20
【问题描述】:
我一次又一次地发现自己需要将一种方法调用的使用更改为另一种方法调用。
例如我有 100 次类似的方法调用:
Helper.GetIntFromData(packetData.Skip(offset).Take(length).ToArray());
需要改成
Helper.GetIntFromData(packetData, offset, length);
这可以通过正则表达式相对容易地解决。但是如果空白(有时)发挥作用呢?
Helper.GetIntFromData(packetData
.Skip( offset )
.Take( length )
.ToArray()
);
仍然可以使用正则表达式,但它现在是一堆不可读的可选空白标记。
好的,但是如果参数并不总是简单的标识符,而是任意表达式呢?
Helper.GetIntFromData(obj.GetData(true).Skip( 7 + GetOffset( item.GetData() ) )
.Take( length1 / length2 ).ToArray());
这是正则表达式真正崩溃的地方。
我的问题是:
今天可以完成吗? (以一种让你保持理智的方式,即没有正则表达式)
是否有可以在更高(语义)级别处理搜索和替换 C# 代码的 VS 扩展或独立工具?
可以让我搜索的东西(我想):
Helper.GetIntFromData($expr1.Skip($expr2).Take($expr3).ToArray())
替换为
Helper.GetIntFromData($1, $2, $3)
C# 是否存在这样的工具? (我想它可以围绕 Roslyn 构建。)
【问题讨论】:
标签: c# regex visual-studio roslyn