我可以在Visual Studio 2010中使用和其他c#代码块来折叠foreach吗?

问题描述:

我可以折叠foreach,在Visual Studio 2010中使用和其他C#代码块,就像我可以折叠方法,属性,类,名称空间等一样?有时候这会很有帮助。我可以在Visual Studio 2010中使用和其他c#代码块来折叠foreach吗?

+0

'我可以'还是'我怎么能'?首先 - 你不能。第二 - 看到打击(并请编辑你的问题) – abatishchev 2010-10-26 11:58:10

+1

什么是非常有用的评论! – 2010-10-26 12:17:28

您可以使用#region #endregion指令来创建可折叠区域。

更新

顺便说一句,你为什么需要这个功能呢?保持你的方法尽可能短是一个很好的原则(鲍勃叔叔称之为extract until you drop)。如果你坚持下去,你将不需要额外的可折叠区域。

+0

适合短期,但我不想让他们留在代码中。谢谢。 – 2010-10-26 12:03:01

+0

A've又增加了一个想法 – 2010-10-26 12:10:43

+2

我坚持这些原则,但有时候会有代码的原子单元运行时间长,不能或不应该被分解:当在外部调用方法时具有很多参数的API;当需要重用代码的机会是零时。 – 2010-10-26 12:15:26

将代码从foreach循环切出并粘贴到函数中,然后将函数折叠掉?

例如,

public void MyMessyFunction() 
{ 
    // ... 

    foreach(string foo in bar) 
    { 
    // Do ugly stuff 
    } 

    // ... 
} 

假作

public void MyMessyFunction() 
{ 
    // ... 

    foreach(string foo in bar) 
    { 
    DoUglyStuff(foo, bar); 
    } 

    // ... 
} 

#region Stuff I want to hide 

public void DoUglyStuff(string foo, List<string> bar) 
{ 
    // Do ugly stuff 
} 

#endregion 

我记得,你可以在Visual Studio 2010中崩溃的任意区域尽量选择区域,然后按Ctrl + M的两倍(假设C#键绑定)。

在VS2008中,可以在Edit - > Outlining下找到它。我没有安装2010年,所以不能轻易尝试。

编辑:实际上,它看起来像VS2008的“隐藏选择”功能(在同一地方找到)有类似的地方,但它似乎只在某些语言中可用。