用于字段封装的不同重构样式:如何使Visual Studio更改它?

时间:2010-09-15 19:02:46

标签: c# visual-studio

当选择重构,封装字段时,让我们说:

int m_member;

VS将生成

    public int Member
    {
        get { return m_member; }
        set { m_member = value; }
    }

出于某种原因(使用反向工程工具,例如不知道这种风格),我想得到一种古老而更冗长的风格:

    public int getMember() {
        return m_member;
    }

    public void setMember(int value) {
        m_member = value;
    }

是否可以配置VS来执行此操作?否则,任何其他意思都有示例代码,如创建片段模板甚至插件,如果有必要?

3 个答案:

答案 0 :(得分:6)

虽然我不一定推荐这个,但所有重构都只是您可以编辑的片段。默认安装会将C#模板放在此文件夹C:\Program Files\Microsoft Visual Studio 10.0\VC#\Snippets\1033\Refactoring中,只需找到您想要的那个并根据需要进行修改。

注意:请务必先备份!!

我也同意其他人的意见,这是一个非常糟糕的主意!

答案 1 :(得分:2)

所以...你想在C#中编写Java / C ++ /(任何不支持属性的语言)?为什么呢?

属性很好,因为:

  1. 语法更清晰。
  2. 调试更容易(您可以在调试器中看到该值,就好像属性是字段一样)。
  3. 这是惯用的。 C#开发人员在查看代码时会对你皱起眉头。是的,这有时很重要,如果您不是这个项目的唯一开发人员,这当然很重要。
  4. 即使您的方法命名约定看起来像Java。当你学习它时,养成习惯采用新语言的习惯是个好主意。

答案 2 :(得分:1)

这种模式不是C#代码的惯用语 - 而Visual Studio也不支持它。我建议避免使用它来支持属性语法。但是,如果您出于某种原因确实需要它,那么您可以使用ReSharper到达目的地。以下是您在ReSharper中所做的事情:

  
      
  1. 重构>>封装字段 (这会创建一个属性)
  2.   
  3. 重构>>转换>>属性方法 (这会生成get / set方法)
  4.   

第一步让我们创建一个包装公共字段的属性。

第二个用可以指定名称的get / set方法替换该属性。