当编辑很长的代码块时(无论如何肯定应该重构,但这超出了这个问题的范围),我经常渴望能够折叠语句块,就像折叠功能块一样。也就是说,如果减号图标出现在大括号内的所有内容的代码大纲上,那就太好了。它似乎出现在函数、类、区域、命名空间、使用中,但不适用于条件或迭代块。如果我可以折叠 if、switch、foreach 之类的东西,那就太棒了!

谷歌搜索一下,我发现显然 VS 中的 C++ 大纲允许这样做,但 VS 中的 C# 大纲不允许。我实在不明白为什么。如果我选择 C# 格式,即使是 notepad++ 也会崩溃,所以我不明白为什么 Visual Studio 不这样做。

有谁知道 VS2008 插件可以实现这种行为吗?或者某种隐藏的设置?

编辑添加:插入区域当然是一种选择,而且我确实已经想到了,但坦率地说,我不应该将东西包裹在已经用大括号包裹的区域中......如果我要编辑现有代码,我只会重构它以更好地分离关注点。(用新方法而不是区域进行“包装”;)

有帮助吗?

解决方案

从 Visual Studio 2017 开始,语句折叠是内置的。

从 VS 2010 版本开始,有多个扩展可以为 VS 2017 之前的版本执行此任务:

最后一个扩展仅支持 VS 2015 和 VS 2017,但它是最强大的一个。
它支持折叠块内的语法着色,具有更高的容错性和优化性。

如果使用浏览器下载扩展后似乎未安装,请尝试使用内置的 Visual Studio 扩展管理器。

其他提示

我不知道加载项,但你提到了区域,我认为做这样的事情并没有错...

foreach (Item i in Items)
{
  #region something big happening here
  ...
  #endregion

  #region something big happening here too
  ...
  #endregion

  #region something big happening here also
  ...
  #endregion
}
编辑:回答问题的编辑:你是对的,到处都是一堆地区并不理想,重构可能是要走的路。但似乎你正在寻找能够“组织”的神奇东西。你的代码,我认为不存在。

您可以在visual studio中折叠特定的文本块,但必须关闭自动大纲。

右键单击代码窗口并选择(概述|停止大纲)

然后,选择一些文本,右键单击并选择(概述|隐藏选择)

当您再次启用自动大纲时,您的自定义“区域”会自动启用。将不再崩溃。

Visual Studio 2008支持函数内部的区域,只要您将它们保持在相同的代码层次结构级别

即可
#region Won't work
for(int i = 0; i<Count; i++)
{
//do something
#endregion
}

for(int i=0; i<Count; i++)
{
#region Works fine
//do lots of stuff
#endregion
}

让我说一些不同的东西:按(ctrl + m,ctrl + h)或编辑&gt;概述&gt;隐藏选择 它非常有用。

此功能已添加到Visual Studio 2010的C#编辑器中。我找不到源验证它实际上已经放入,但我记得在Dev 10团队成员博客中的一个谈论自Beta 1之后的变化。 作为安慰,这里有一个微软评论建议他们想要添加它。

我将在此处补充说,在VS 2010中,Microsoft已使用Managed Extensibility Framework(MEF)添加了WPF adorner功能,这将允许我们扩展源代码编辑器,以更好的方式组织它们,使其更具可读性和可访问性

例如, Scott Gu在PDC 2008演示的摘要注释可视化工具。

所以期待开发人员有一个更美好的明天:)

Coderush将为您概述所有代码块。不确定它是否允许你扩展/折叠块,但概述是下一个最好的事情。我使用resharper而不是coderush,据我所知,它不会提供块崩溃:(

我在Visual Studio 2013中找到了这个,发现它非常有用。即使你用{.....}

在代码周围加上简单的括号,它也能工作

分享后我发现其他人也提到了这个链接。我的投票也是这个工具。

用于Visual Studio 2013的C#概述工具

在VS2017中,您可以突出显示一段代码,右键单击,概述&gt;隐藏选择。这将折叠代码并为突出显示的部分提供切换。

#region,#endregion是明智的选择。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top