【问题标题】:Tools for refactoring C# public fields into properties将 C# 公共字段重构为属性的工具
【发布时间】:2010-11-04 22:44:31
【问题描述】:

我有很多使用公共字段的 C# 代码,我想将它们转换为属性。

我有 Resharper,它会一一完成,但这需要很长时间。

有人知道可以帮助解决此问题的自动重构工具吗?

【问题讨论】:

    标签: c# .net refactoring automated-refactoring public-fields


    【解决方案1】:

    将字段重构为属性(无需扩展):

    第一步:重构所有需要被属性封装的字段

    第 2 步:将所有属性重构为自动实现的属性

    【讨论】:

      【解决方案2】:

      如果您在 VS.NET 中重命名字段时,VS 会提示您更改重命名字段的所有匹配项。

      因此,将您的公共变量更改为属性名称,告诉 VS 更改此变量的所有实例,然后创建一个私有变量来存储该值和该属性名称的公共属性。删除公共变量,你应该很高兴。

      【讨论】:

      • 这比使用 resharper 慢得多,甚至是 Visual Studio 的内置重构以将字段包装在属性中。
      • 如果您使用的是不支持“封装字段”重构的快速版 Visual Studio,这很有用。
      【解决方案3】:

      Resharper 使用 Alt+PageDown / ALt+Enter(使用默认键绑定)非常快速地完成此操作。如果您在第一个字段,Alt+PageDown 将跳转到下一个字段(因为它将包含包装公共字段作为建议的重构),并且 Alt+Enter 将提示您将其包装在一个属性中。

      由于您很可能希望避免对所有属性进行全面包装,因此这可能是最快的方法。对班级执行此操作非常快,因为它会准确跳转到您需要去的地方...

      【讨论】:

      • 当我按下 Alt+Enter 时,我没有收到“封装字段”重构建议。我必须右键单击并使用重构菜单。我使用的是默认键绑定和最新发布版本 (4.5.1231.7)。
      • Ctrl+R/E 是您想要的直接重构。您可以执行 Alt+PageDown 然后 Ctrl+R/E,并避免菜单。我不知道为什么,但我认为这是建议使用 Alt+Enter 菜单重构...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 1970-01-01
      • 2017-12-09
      • 2011-09-06
      • 2011-11-30
      • 1970-01-01
      相关资源
      最近更新 更多