等效于C ++的#region

C ++的C#等价物是什么,所以我可以放入自定义的代码折叠位,让我的代码更容易阅读?

Region关键字是IDE特定的,并影响Visual Studio中的呈现。 最接近的等价物是#pragma仅适用于Visual Studio的区域。

来自MSDN的代码示例

 // pragma_directives_region.cpp #pragma region Region_1 void Test() {} void Test2() {} void Test3() {} #pragma endregion Region_1 int main() {} 

除Visual Studio的#pragma region#pragma endregion ,许多IDE都支持以下语法,用于任何{}限定的/ /注释语言的区域:

 //{ Region header text. … //} 

值得注意的例子包括Code :: Blocks和FlashDevelop ,以及任何其他使用Scintilla编辑组件的编辑器,如Notepad ++ , Geany , Komodo Edit等等。

在C ++中没有等价物。 但是,IDE应该可以折叠部分。

也可以使用这样的东西:

 #pragma region #pragma endregion A comment about the region. 

但可能不是很便携

没有相同的东西。 #regionfunction是C#规范的一部分。

C ++没有这样的等价物。 你可以用特殊格式的注释来模仿它,但这是编辑器特有的。

对于Visual Studio,您可以使用:

 #pragma region name ... #pragma endregion name 

我一直在使用

 #ifndef ANY_NAME_FOR_THIS_REGION ... #endif 

在过去的几年里有几个项目适合我(包括可折叠的块)。 作为补充,我可以使用#define ANY_NAME_FOR_THIS_REGION在其上方禁用该块。

没有相同的东西。

大多数好的编辑器或IDE会让你崩溃的function,如果不是, if /别/ while / for /等。

只是除了其他答案。 区域定义因IDE而异。

对于Xcode中的 Mac开发,您可以使用一个杂注 :

 #pragma mark 

C ++ Builder 确实支持这个,但是你必须声明这个区域为:

 #pragma region BLAH ..... #pragma end_region 

必须为C ++ Builder使用end_region,但是它起作用,并且崩溃这个区域!

Kate,KDevelop和所有使用Katepart的文本编辑器和IDE都支持用//BEGIN//END标记标记区域。

 // BEGIN GPT entity types #define GPT_ENT_TYPE_UNUSED \ {0x00000000,0x0000,0x0000,0x00,0x00,{0x00,0x00,0x00,0x00,0x00,0x00}} #define GPT_ENT_TYPE_EFI \ {0xc12a7328,0xf81f,0x11d2,0xba,0x4b,{0x00,0xa0,0xc9,0x3e,0xc9,0x3b}} #define GPT_ENT_TYPE_MBR \ {0x024dee41,0x33e7,0x11d3,0x9d,0x69,{0x00,0x08,0xc7,0x81,0xf3,0x9f}} // END 

您将能够折叠以这种方式定义的区域。

这个问题的第一个答案提到另一个select。 但是并不适用于所有情况。

方法:使用{…},而不是本地支持在Visual Studio中折叠代码。

  1. 启用选项:工具 – >选项 – >文本编辑器 – > C / C ++ – >格式化 – > OutLine语句块 – > True。

  2. 把你在不同的范围{…},然后它将折叠在不同的范围内的代码:

范围代码崩溃的例子