【问题标题】:Can I collapse foreach, using and other c# code blocks in Visual Studio 2010?我可以在 Visual Studio 2010 中折叠 foreach、using 和其他 c# 代码块吗?
【发布时间】:2010-10-26 11:51:41
【问题描述】:

我能否像折叠方法、属性、类、命名空间等一样折叠 Visual Studio 2010 中的 foreach、using 和其他 c# 代码块?有时会很有帮助。

【问题讨论】:

  • Can IHow can I?首先 - 你不能。第二 - 看到打击(请编辑你的问题)

标签: c# .net visual-studio visual-studio-2010


【解决方案1】:

您可以使用#region #endregion 指令来创建可折叠区域。

更新

顺便问一下,你为什么需要这个功能?有一个很好的原则可以让你的方法尽可能的简短(鲍勃叔叔称之为extract until you drop)。如果你坚持下去,你就不需要额外的可折叠区域。

【讨论】:

  • 适合短期使用,但我不想将它们留在代码中。谢谢。
  • 我又增加了一个想法
  • 我坚持这些原则,但有时有些代码的原子单元运行时间很长,不能或不应该被分解:当调用外部 API 中的方法时很多参数;当需要重用代码的机会为零时。
  • 区域在折叠代码方面很有帮助,但它们也可能导致编译错误,这让我很烦恼。编译器不应该关心没有#endregion。但除此之外,我发现折叠 foreach 循环的能力非常方便,并且一直在 NotePad++ 和 SciTE 中使用。逻辑上属于一起的代码应该保持在一起——不要过度重构。
【解决方案2】:

将代码从 foreach 循环中剪切 + 粘贴到一个函数中,然后将函数折叠起来?

例如,

public void MyMessyFunction()
{
  // ...

  foreach(string foo in bar)
  {
    // Do ugly stuff
  }

  // ...
}

变成

public void MyMessyFunction()
{
  // ...

  foreach(string foo in bar)
  {
    DoUglyStuff(foo, bar);
  }

  // ...
}

#region Stuff I want to hide

public void DoUglyStuff(string foo, List<string> bar)
{
  // Do ugly stuff
}

#endregion

【讨论】:

    【解决方案3】:

    我记得,您可以在 Visual Studio 2010 中折叠任意区域。尝试选择一个区域,然后按两次 Ctrl+M(假设为 C# 键绑定)。

    在 VS2008 中,可以在 Edit -> Outlining 下找到;我没有安装 2010,所以无法立即试用。

    编辑:实际上,看起来 VS2008 的“隐藏选择”功能(在同一个地方找到)有类似的功能,但它似乎只支持某些语言。

    【讨论】:

      猜你喜欢
      • 2011-03-03
      • 2019-04-29
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多