关于在 Visual Studio 中使用 #pragma region 折叠代码块

Posted

技术标签:

【中文标题】关于在 Visual Studio 中使用 #pragma region 折叠代码块【英文标题】:About collapsing code block in Visual Studio using #pragma region 【发布时间】:2014-01-08 19:19:53 【问题描述】:

在 VisualStudio 中,当您编写一个函数时,它可以折叠成轮廓,这是每个人都知道的。您也可以使用#pragma region#pragma endregion 手动指定代码区域,以便它可以折叠。但是我发现了一个问题,如果任何折叠的代码块在#pragma region 内,它们就不能再折叠了。有什么办法解决吗?

【问题讨论】:

你用的是VS2010吗?这个问题显然已经在 VS2012 中修复了。 【参考方案1】:

除了#pragma region,还有其他几种更好更灵活的方法可以在 VS 中折叠代码:

方法一:改用...,VS原生支持代码折叠。

    启用选项:Tools->Text Editor->C/C++->Formatting->OutLine Statement Blocks->True

    把你放在不同的作用域...,那么它会折叠不同作用域的代码:


方法二:使用键盘快捷键折叠你想要的代码:

CTRL + M + O 将全部折叠。

CTRL + M + L 将全部展开。

CTRL + M + P 将全部展开并禁用大纲。

CTRL + M + M 将折叠/展开当前部分。


值得注意的是,方法#1 更适用于纯代码 sn-ps。对于函数,因为类似于we cannot have functions inside functions in C++,我们不能将函数放在...定义的范围内。幸运的是,我们仍然可以通过为每个作用域创建命名空间来将方法#1 用于函数。或者简单地说,使用方法#2。

【讨论】:

我只是想知道,有多少函数可以驻留在 下?它不会破坏其他格式吗? @Digital_Reality 这种方法更适用于纯代码 sn-ps,不适用于函数,类似于 we cannot have functions inside functions in C++。 screw other formatting 是什么意思? 好吧,OP 的问题是针对他所在区域内的功能的。所以我猜不适合他的需要。但很高兴知道,谢谢! @Digital_Reality 对于函数,最好使用方法2。 @Digital_Reality 已更新,添加了如何将方法 #1 用于函数。【参考方案2】:

是的,这个问题存在

有时可行的一种解决方法是使用大纲 -> 折叠到定义,然后重新展开每个块。

【讨论】:

以上是关于关于在 Visual Studio 中使用 #pragma region 折叠代码块的主要内容,如果未能解决你的问题,请参考以下文章

项目在 Visual Studio 2015 PrivateAssemblies 中找不到 dll

如何在/使用 Visual Studio 2010 中为 64 位 Windows 构建 libcurl?

关于在Visual Studio2010中如何卸载Visual Asixist这个插件?为啥将它卸载后Visual Studio启动后仍然有

关于Visual studio出现错误的问题!!!

Visual Studio日志文件

关于visual studio 2010的问题