如何自定义由“封装字段”生成的代码的格式

本文关键字:封装字段 代码 格式 字段 自定义 封装 | 更新日期: 2023-09-27 18:05:25

以前我很确定"封装字段"命令会变成下面这样的东西:

public int SomeNumber;

转换为以下内容(我想从VS 2015中获得):

private int someNumber;
public int SomeNumber {
    get { return someNumber; }
    set { someNumber = value; }
}

,但在Visual Studio 2015中,我看到以下内容:

private int someNumber;
public int SomeNumber {
    get {
        return someNumber;
    }
    set {
        someNumber = value;
    }
}

有办法解决这个问题吗?

如何自定义由“封装字段”生成的代码的格式

这是VS2015中的一个设计更改。在以前的版本中,重构命令关注的是工具>选项>文本编辑器> c#>换行>"将块留在单行"选项。打开后,您将获得属性getter和setter主体,就像在代码片段中编码的那样,在同一行上有大括号。你喜欢的方式。

与VS2015不同的是,它现在关注的是工具>选项>文本编辑器> c#>格式化>新行> "将开括号放在新行上的方法"设置。你可以在"埃及式"大括号和分开的前大括号之间做出选择。两个你都不喜欢。

当微软创建新的VS版本时,意外是会发生的,这不是意外。这是否出于"大众需求"很难逆向工程,我认为这很有可能,因为这种重构通常是为了编写一个重要的getter或setter,而不是一行。让我们在三种可能的格式首选项之间进行选择对我来说似乎是个问题,现有的格式选项不是一个很好的匹配。

唯一真正的选择是让微软知道你对这个改变不满意。UserVoice已有一篇文章提出了修改建议。你可以投票,也可以自己写。在你的问题中发布一个链接,以便其他so用户可以投票。

这对你有帮助吗:
封装字段重构(c#):https://msdn.microsoft.com/en-us/library/a5adyhe9.aspx

这个网站似乎为这个话题提供了一个解决方案。

也看看这篇文章:字段封装的不同重构风格:如何让Visual Studio改变它?字段封装的不同重构风格:如何让Visual Studio改变它?

这个在某种程度上与你的问题相对应:这个问题确实与你的问题相关:)

我自己试过改变片段文件,以适应我的文件,但VS不生效。我最后做的是

  1. 像往常一样封装字段。
  2. 复制并粘贴代码到notepad++中,并执行查找和替换。

:

('{)*('s*)*(get|set)'r'n's+{'r'n's+(.*)'r'n's+'}'s+

替换为:

$1$3'{$4'}
  • 将结果粘贴回VS中,VS将按照"left block on single line"进行格式化。