【问题标题】:Code formatting styles - which one is preferable代码格式样式 - 哪一种更可取
【发布时间】:2011-01-27 21:20:13
【问题描述】:

所以如果我在 c# (#1) 中有这样的函数

private void Test(){

    }

如果你点击 Ctl K D,它会变成 (#2)

private void Test()
    {

    }

这里有两个问题。
1.有没有热键组合可以将#2代码转换为#1代码?
2. Micorosoft 是否有任何建议应该使用哪一个。我更喜欢#2,但我的一位同事更喜欢#1,他认为这是微软推荐的,但从未给我任何链接。我个人更关心代码的可读性而不是推荐,但只是好奇是否有这样的推荐。

【问题讨论】:

  • #2 看起来像 GNU 编码标准 :) gnu.org/prep/standards/standards.html#Formatting
  • 好的。有谁知道在 Micorosoft、#1、#2 或其他东西中使用什么风格。可能是我们能以某种方式看到他们的一些代码(在这种情况下,反射器可能无济于事)
  • 我更喜欢 #1({ 之前有一个空格)——就首选而言,这取决于本地编码标准,它可能继承或基于其他外部标准.无论如何,在项目中保持一致

标签: c# visual-studio visual-studio-2008 coding-style


【解决方案1】:

要从 #2 转换为 #1,请转到工具->选项->文本编辑器->C#->格式设置->新行,更改适当的项目(在这种情况下,“将左大括号放在新行上方法”),确定退出对话框,然后再次按 Ctrl K D

【讨论】:

    【解决方案2】:

    当然,“首选”是主观的,但如果您只对一致性感兴趣,Microsoft 的建议已编入StyleCop,它会自动为您检查代码以了解此类(以及更多)内容。我认为它使用了 #2 样式,但为了它的价值,它比大括号更小。

    假设此页面准确无误,以下是一些内部样式指南。项目 2.2 回答了您的问题(他们使用样式 #2,但没有在大括号上使用额外的缩进)

    【讨论】:

    • 正是我想要的。非常感谢
    【解决方案3】:

    Visual Studio 带有类似于样式#2 的默认样式,因此根据我的经验,这几乎是所有 C# 代码所使用的。但是,您的示例中的大括号没有明显的原因缩进。比较典型的是:

    private void Test()
    {
        foreach (int x in bar)
        {
            Console.WriteLine(x);
        }
    }
    

    但是,您可以进入工具 / 选项 / 语言 / C# / 格式并随意更改它。 ReSharper 提供了更多选择。然后您可以按照您选择的样式重新格式化代码。

    【讨论】:

      【解决方案4】:

      归根结底,这是个人喜好...不过有一些事情需要确定:

      1. 保持一致,不仅仅是通过文件,而是通过整个项目。
      2. 如果您正在处理具有现有代码样式的项目,那么您应该自己使用该编码样式。
      3. 您可能无法根据项目选择编码风格。保持灵活性。

      【讨论】:

        【解决方案5】:

        代码约定有时是主观的。您可能会发现一家公司严格规定了与其他公司/人不同的代码样式。

        回答: 1. 不,但是在你按下 CTRL-K,D 之后 CTRL-Z (但是如果你保存并关闭文件,就没有办法回来了) 2. 我不知道微软没有发布关于该主题的文章,但他们使用 VS 推荐的代码样式及其所有代码片段。所以这应该是推荐的版本

        顺便说一下,我更喜欢示例 1 中的空格:private void Test() {

        【讨论】:

          【解决方案6】:

          偏好,这取决于您的业务编程结构(如果有的话)。我自己更喜欢(第 2 名)

          private void Test()
          {
          
          }
          

          您通常可以将 IDE 更改为您想要的任何格式。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-10-01
            • 1970-01-01
            • 2020-06-24
            • 1970-01-01
            • 2018-09-05
            • 2011-03-17
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多