Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何自定义由“生成的代码的格式”;封装字段“;?_C#_Visual Studio 2015_Code Formatting - Fatal编程技术网

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

C# 如何自定义由“生成的代码的格式”;封装字段“;?,c#,visual-studio-2015,code-formatting,C#,Visual Studio 2015,Code Formatting,在此之前,我相当确定“封装字段”命令将改变如下内容: public int SomeNumber; private int someNumber; public int SomeNumber { get { return someNumber; } set { someNumber = value; } } 进入以下内容(我希望VS 2015中的内容): 但在Visual Studio 2015中,我看到了以下内容: pub

在此之前,我相当确定“封装字段”命令将改变如下内容:

public int SomeNumber;
private int someNumber;

public int SomeNumber {
    get {
        return someNumber;
    }

    set {
        someNumber = value;
    }
}
进入以下内容(我希望VS 2015中的内容):

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

public int SomeNumber;
private int someNumber;

public int SomeNumber {
    get {
        return someNumber;
    }

    set {
        someNumber = value;
    }
}
有办法解决这个问题吗?

这对您有帮助吗:
-封装字段重构(C#):

这个网站似乎为主题的结尾提供了一个解决方案

也请查看此帖子: -字段封装的不同重构风格:如何让VisualStudio改变它?


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

这是VS2015中的一个设计变更。在以前的版本中,重构命令关注工具>选项>文本编辑器>C#>换行>“将块保留在单行”选项。启用该选项后,您将获得属性getter和setter主体,其编码方式与代码段中的编码方式相同,括号位于同一行。你喜欢的方式

与VS2015不同的是,它现在关注工具>选项>文本编辑器>C#>格式>新行>“在方法的新行上放置大括号”设置。您可以在“埃及”大括号或单独使用开口大括号之间进行选择。你都不喜欢

当微软创建新的VS版本时会发生意外,这不是意外。这是否是由“大众需求”来完成的,很难逆向工程,我认为很有可能,因为这种重构通常是为了编写一个不适合的单一的吸气剂或定位器。让我们在所有三种可能的格式首选项之间进行选择对我来说似乎是个问题,现有的格式选项并不匹配


唯一的实际选择是让Microsoft知道您对更改不满意。有人提议改变。你可以投赞成票,也可以自己写。在你的问题中发布一个指向它的链接,以便其他用户可以投票。

我自己也尝试过将代码片段文件更改为适合我的文件,但VS没有生效。我最后做的是

  • 像往常一样封装字段
  • 将代码复制并粘贴到notepad++中,然后执行查找和替换 查找:

    (\{)*(\s*)*(get|set)\r\n\s+{\r\n\s+(.*)\r\n\s+\}\s+
    
    替换为:

    $1$3\{$4\}
    
  • 将结果粘贴回VS。VS将按照“在单行上保留块”进行格式化

  • 名为“封装字段”的重构(奇怪地称为公共get/set with backing字段不是封装)是通过一个代码段控制的。因此,您应该能够编辑该代码段。请看@DavidArno谢谢,我没有意识到代码片段是在快捷键的范围之外使用的。我刚刚打开了代码段文件“C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC#\Snippets\1033\Refactoring\EncapseField.snippet”,但其中的格式似乎正确:使用propfull,然后按tab,然后按tabBug report:我喜欢VS2015旨在改进,但是这样的原因是为什么我仍然使用ReSalpor进行重构,它有选择这样的选项的能力,默认情况下,它是按照你和我喜欢的方式来做的。考虑把你的链接页面中的一些信息放入你的答案中;这样,如果有人因为任何原因无法访问链接,他们仍然可以获得一些信息。它将帮助所有参与的人@谢谢你的建议:)现在编辑:)谢谢;这是先前提出的,但是我的片段文件已经成为我想要的:除非我查看错误的文件。即使我能让它尊重代码的格式,我也会更乐意使用它。我想不出一个好的理由来解释这个空白行,这意味着更少的手动重新格式化。