【问题标题】:Hide curly braces in C#在 C# 中隐藏花括号
【发布时间】:2011-01-30 23:38:34
【问题描述】:

回到 Python 之后,我开始注意到我的 C# 编码风格需要到处使用大括号,并且越来越感到恼火

 if (...)
 {
     return ...;
 }
 else
 {
     return ...;
 }

更喜欢(主观)看起来更干净的python对应部分

if ...:
    return ...
else
    return ...

有什么办法可以隐藏这些大括号(因为它们平均占用了我大约 30% 的编码屏幕,而且看起来很丑!)

【问题讨论】:

  • 你用什么程序来编辑你的代码?
  • 忽略它们。对于单个语句,您在 C# 中不需要它们。
  • 我认为这是使用 C# 的不幸后果。你可以试试同行花括号,它看起来好多了,但这不是 C# 的社区标准:(
  • 一种可能性是设置编辑器设置为 { } 提供非常明亮的颜色(如果您使用深色背景,则为深色)

标签: c# python coding-style


【解决方案1】:

抱歉,但如果您使用 C# 进行编码并且不仅仅是简单的单表达式块,那么您将不得不接受它。 Python 的“indent-denotes-scope”语法可能不错,但它是 Python,而不是 C#。

【讨论】:

    【解决方案2】:

    你可以切换到:

     if (...) {
         return ...;
     } else {
         return ...;
     }
    

    获得一些屏幕。

    我认为假装 C# 像 Python 一样工作是个坏主意。

    【讨论】:

    • 唉,屏幕空间只是问题的一半,如果我可以将它们完全隐藏起来会更好看。我实际上切换到将 { 放在一行以提高可读性。
    • @Joe 我不认为“它看起来会更好”是这样做的充分理由。如果您要经常使用 C#,那么您会更好地适应语法。
    • 哦,相信我,我已经习惯了语法,但这只是当我周末在 python 中从事我的宠物项目时以及当我开始工作时,我或多或少有一个令人惊叹的时刻今天早上,我忍不住注意到我多年来写的所有牙套……我想如果我能把它藏起来会不会很酷
    【解决方案3】:
    if (condition) {
        statement1
        statement2; }
    else {
        statement3;
        statemen4; }
    

    在我看来更丑陋:(

    【讨论】:

    • ewwww.. 太可怕了.. 呵呵
    • 如果可以为大括号选择与 Visual Studio 中的编辑器背景颜色相同的前景色,那将是个好主意。
    【解决方案4】:

    如果您需要 .NET 但又喜欢 Python 语法,您不妨查看Boo。

    【讨论】:

    • +1 我读过,虽然 boo 可能无法满足我隐藏花括号的简单需求,但它最终可能会满足我在 .net 中像 python 一样编写的愿望......但不是IronPython 是做什么的? ..谷歌搜索...显然那里也有一些差异
    【解决方案5】:

    如果你感觉很糟糕:

    if (iAmEvil)                                                                                                             {
        LookMa();
        NoBraces();
        OrSemiColonsForThatMatter()                                                                                         ;}
    else {
        IfYouDontGetIt();
        ScrollRight();
    }
    

    当然,这可能比它的价值更麻烦。

    【讨论】:

    • 我想知道这怎么可能,将粘贴复制到 linqpad 并看到“隐藏”文本。不确定这是否适合作为答案,很想投反对票(从噪音的角度来看)。
    • 这听起来比预期的更刺耳,这很有趣:) 不反对...但仍然不确定它是否应该是一个答案... O_O
    • 好吧,stackoverflow.com/help/privileges/vote-down 表示反对票是针对“一个非常草率、不费吹灰之力的帖子,或者一个明显不正确且可能非常不正确的答案”。我的“解决方案”确实 完成了工作(隐藏大括号和分号),而且我确实花了一些精力来写出所有这些空格。按照这些标准,我很确定我已经做出了一个完全有效的答案。如果你想投反对票,那就去吧——幽默是值得的:)
    【解决方案6】:

    好吧,您可以在 C# 中省略大括号,只要 if 和 else “块”只是单个语句:

    // perfectly legal
    if (...)
        return ...
    else
        return ...
    

    如果您需要多行 if 和 else 块,那么您将无法使用大括号。

    【讨论】:

      【解决方案7】:
      1. 如果您只有一个语句,则不需要括号。例如,以下是有效的:

        for (int i = 0; i < 10; i++)
            if (i == 9)
                break;
        

      (即使该代码没有任何意义)

      1. 您可以按照 Skilldrick 的说明更改 Visual C# 中的设置以格式化 C# 代码,以使代码更短:

      转到工具 -> 选项 -> 文本编辑器 -> C# -> 格式化(或类似的东西,我只有德语版的 Visual Studio)。

      希望有帮助

      【讨论】:

        【解决方案8】:

        C/C++/Java/C# 的人们与 Cobol/BASIC/Python 家族之间有着古老的种族仇恨。这是一个真正的非此即彼的事情......不允许两全其美,吃蛋糕和吃它们太有趣了:)

        【讨论】:

          【解决方案9】:

          对于单个语句,您不需要花括号。在您需要它们的时候,您可以将大括号放置如下:

          if(expr) {
              ...
          } else {
              ...
          }
          

          【讨论】:

            【解决方案10】:

            查看scribes,它是一个非常棒的编辑器,可以在很大程度上进行自定义,我很确定你可以用它来做你需要的事情。

            【讨论】:

            • scribes 甚至不适用于 Windows,它如何满足我的需求?
            猜你喜欢
            • 2018-05-02
            • 1970-01-01
            • 2014-02-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-09-12
            • 2019-01-26
            • 1970-01-01
            相关资源
            最近更新 更多