-1

我要承认,我正在努力改变 C# 的面貌,并且忘记了从 C#1 开始以来我学到的东西。

几年前,我开始编写新的 C# 1.1 代码,目前还大量维护使用以前版本的 C# 编写的代码。接触旧的做事方式很难,因为我正在努力从代码中忘却我过去编写的内容,并且我必须每天查看用以前版本的 C# 编写的代码。必须维护 Java 项目也无济于事,因为它类似于 C#1。随着时间的推移,我可能会忘记我的不良做法,但由于项目截止日期,这很难做到。

我的懒惰思想也反对我,因为它的逻辑表明如果我使用 OO 和 DRY 原则并且代码编译我的老板很高兴,并且认为当我没有用新的做事方式简化我的代码时一切都很好。

我已经开始深入阅读 Jon Skeet 的 C# 2ed,因为它提供了代码解决方案来为 C#1、C#2、C#3、C#4 中的每一个执行特定任务,每次显示代码示例如何简化了代码,但我发现很难记住这些新方法并将其付诸实践,因为我仍然必须每天处理所有这些遗留代码,并且仍然必须平衡我的万事通开发工作。

  1. 是否有一种简单的方法可以即时或在编译时在从 C#1、C#2、C#3 到 C#4 的编码实践之间进行重构,并以英语给出建议或为我重构代码。

  2. 有没有像工具或网站这样的工具或网站,我可以看到 C# 版本之间相同代码的更改,不包括 Jon Skeet 的 C# 深度书籍?

4

1 回答 1

3

最新版本的ReSharper将是一个有用的工具,可以在许多方面快速推动您的 C#。它将为您指出更新的实践,并使在现有代码中使用它们变得更快、更少痛苦。

想到的几个具有前瞻性的 ReSharper 重构是:

  • 静态到扩展方法...
  • 属性到自动属性...

此外,例如,ReSharper 会鼓励您尽可能使用var隐式声明。

CodeRush可以做很多相同的事情,但我最近没有使用它。

要查看此类工具的重构位置与您开始的位置之间的差异,请考虑在源代码控制中与文件的先前版本进行比较。

正如@stakx 指出的那样,对于与 C# 一起对 .NET BCL 进行的更改,请考虑深入了解针对较新版本的 .NET 构建的已弃用代码的构建警告。一旦您学会(仅作为一个示例)替换使用System.Xml.XmlValidatingReaderwith System.Xml.XmlReader,在标记为前一种已弃用类型的其他地方进行更改将变得很快。

MSDN 上的 .NET Framework 中过时的内容描述了自 .NET 1.1 以来最近的 BCL 弃用以及如何更新受影响的代码。

于 2013-05-04T06:53:17.507 回答