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 可能支持它),这样我就不需要手动执行了?
- 恢复为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}", )
([a-z]*) ([a-zA-Z?]*) ([A-Za-z]*) => ([a-zA-Z0-9_]*)\?\.([a-zA-Z]*);
-> { get { return == null ? ()null : .; }}
在此之后,我进行了一些手动更改,所以我想它并没有最初感觉的那么糟糕。
本周我们为我们的团队安装了全新的 VS2015 版本。所以我立即开始到处使用 C#6 语法,然后我将更改合并到主分支,但在 TeamCity 上都失败了。原来我们的 TeamCity 不支持 C#6,我们需要新的许可证。
现在我将不得不重写我以前版本中的所有代码(我们正在谈论几乎一个 sprint 价值的代码,最少需要 1-2 小时的修复)。
有没有办法将代码恢复到以前版本的 C#(例如 Resharper 或 VS2015 可能支持它),这样我就不需要手动执行了?
- 恢复为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}", )
([a-z]*) ([a-zA-Z?]*) ([A-Za-z]*) => ([a-zA-Z0-9_]*)\?\.([a-zA-Z]*);
-> { get { return == null ? ()null : .; }}
在此之后,我进行了一些手动更改,所以我想它并没有最初感觉的那么糟糕。