Refactor/revert 代码从 C#6 返回到 C#5

Refactor/revert code back to C#5 from C#6

本周我们为我们的团队安装了全新的 VS2015 版本。所以我立即开始到处使用 C#6 语法,然后我将更改合并到主分支,但在 TeamCity 上都失败了。原来我们的 TeamCity 不支持 C#6,我们需要新的许可证。

现在我将不得不重写我以前版本中的所有代码(我们正在谈论几乎一个 sprint 价值的代码,最少需要 1-2 小时的修复)。

有没有办法将代码恢复到以前版本的 C#(例如 Resharper 或 VS2015 可能支持它),这样我就不需要手动执行了?

  1. 恢复为string.Format

正则表达式替换:

$\"\{([A-Za-z.]*)\}\" -> string.Format("{0}", )

$\"\{([A-Za-z. ]*):([0-9.]*)\}\" -> string.Format("{0:}", )

$\"([A-Za-z. ]*)\{([a-zA-Z]*)\}\" -> string.Format("{0}", )

  1. 还原properties regex replace

([a-z]*) ([a-zA-Z?]*) ([A-Za-z]*) => ([a-zA-Z0-9_]*)\?\.([a-zA-Z]*); -> { get { return == null ? ()null : .; }}

在此之后,我进行了一些手动更改,所以我想它并没有最初感觉的那么糟糕。