当前位置:  开发笔记 > 编程语言 > 正文

Visual Studio C#语句折叠

如何解决《VisualStudioC#语句折叠》经验,为你挑选了3个好方法。

当编辑真正长的代码块时(无论如何它肯定会被重构,但这超出了这个问题的范围),我经常渴望能够折叠语句块,就像可以折叠功能块一样.也就是说,如果在括号中包含的所有内容的代码轮廓上出现减号图标,那将会很棒.它似乎出现在函数,类,区域,命名空间和使用中,但不适用于条件或迭代块.如果我可以崩溃像ifs,switch,foreaches这样的东西,那将是太棒了!

谷歌搜索到这一点,我发现显然在VS中的C++概述允许这样但在VS中的C#概述却没有.我真的不明白为什么.如果我选择C#格式化,即使是notepad ++也会崩溃,所以我不明白为什么Visual Studio没有.

有没有人知道VS2008加载项会启用此行为?或者某种隐藏的设置呢?

编辑添加:插入区域当然是一个选项,它确实已经发生在我身上,但坦率地说,我不应该把事情包裹在已经用括号括起来的区域......如果我要编辑现有的代码,我只是重构它,以便更好地分离关注点.(用新方法代替区域"包装";)



1> Skyblade..:

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

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

C#大纲

C#outline 2012(@MSDN)

C#outline 2013(@MSDN)

C#outline 2015(@MSDN)

Visual Basic和C#Outliner

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

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


`Ctrl M + O`不再有效.我怎样才能解决这个问题?
我们甚至需要Visual Studio的这个插件这一事实令人难以置信.这应该是标准行为.善良.
[这是VS 2013版本:](http://visualstudiogallery.msdn.microsoft.com/6c3c5dec-1534-4c42-81b1-cfd4615fd0e9)

2> Kon..:

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

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
}

编辑:回答问题的编辑:你是对的,到处都是一堆地区并不理想,重构可能就是要走的路.但似乎你正在寻找一些神奇的东西来为你"组织"代码,我认为不存在.


他的代码是正确的; 你不仅限于你可以定义这样的区域(只要你没有在开头的范围之外结束)
请看原始问题的编辑; 开发人员需要手动操作(即使使用一次或两次点击区域包装快捷方式)也无法真正回答自动完成此操作的问题/愿望

3> Matt Brunell..:

您可以在visual studio中折叠特定的文本块,但必须关闭自动轮廓.

右键单击代码窗口并选择(Outlining | Stop Outlining)

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

当您再次打开自动大纲时,您的自定义"区域"将不再崩溃.


很公平.我希望通过这个问题找到一种方法来将这些块添加到自动轮廓中,因为它对于它们不是真的没有意义.
推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有