Visual Studio C#语句崩溃

当编辑真正长的代码块时(无论如何这肯定会被重构,但这超出了这个问题的范围),我经常渴望能够折叠语句块,就像可以折叠function块一样。 也就是说,如果代码大纲中的大括号所包含的所有内容都显示为负号,那就太好了。 它看起来像函数,类,区域,名称空间,使用,但不适用于条件或迭代块。 如果我能像ifs,switch,foreaches这样的东西瓦解,那将是太棒了!

search一下,我发现显然在VS中的C ++概述允许这个,但VS中的C#概述不。 我真的不明白为什么。 即使记事本++会这样折叠,如果我selectC#格式,所以我不明白为什么Visual Studio不。

有谁知道一个VS2008加载项,将启用此行为? 或者某种隐藏的设置呢?

编辑补充说:插入区域当然是一种select,它已经发生在我身上,但坦率地说,我不应该把东西包装在一个已经包裹在大括号中的区域…如果我要编辑现有的代码,我只是重构它,无论如何有更好的分离关注。 (用新方法而不是区域“包装”;)

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

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

  • C#大纲
  • C#大纲2012(@MSDN)
  • C#大纲2013(@MSDN)
  • C#大纲2015(@MSDN)
  • Visual Basic和C#Outliner

最后的扩展只支持VS 2015和VS 2017,但是它是最强大的。
它支持折叠块内的语法着色,它更容错和优化。

如果在使用浏览器下载扩展程序后似乎没有安装,请尝试使用内置的Visual Studio扩展pipe理器。

我不知道加载项,但你提到的地区,我没有看到做这样的事情没有错…

 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中折叠特定的文本块,但是必须closures自动大纲。

右键单击您的代码窗口,然后select(轮廓|停止轮廓)

然后,select一些文本,右键单击并select(大纲|隐藏select)

当您再次打开自动轮廓时,您的自定义“区域”将不再折叠。

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 } 

此function已添加到Visual Studio 2010的C#编辑器中。 我找不到源代码确实已经存在,但是我记得在Dev 10团队成员博客上看到一个关于自Beta 1之后发生的变化的文章。 作为一个安慰,这里有一个微软评论,build议他们添加它。

让我说一些不同的东西:按(ctrl+m,ctrl+h)或编辑>大纲>隐藏select它非常有用。

我将在这里补充一点,在VS 2010中微软已经使用托pipe扩展性框架(MEF)添加了WPF装饰器function,这将允许我们扩展源代码编辑器,以更好的方式组织它们,使其更易于读取和访问。

例如Scott Gu在PDC 2008上演示的Summary Comments可视化工具。

所以期待开发者的美好明天:)

Coderush将为您概述所有的代码块。 不知道它是否允许您展开/折叠块,但大纲是次最好的事情。 我使用resharper而不是coderush,据我所知不提供块折叠或者:(

我已经find了这个Visual Studio 2013,发现它非常有帮助。 即使您将简单的大括号括在您的代码中,也可以使用{…..}

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

用于Visual Studio 2013的C#大纲工具

#region,#endregion是智能选项。