备注:这个“特性”现在已经添加到Visual 2015中,但是这个问题将持续很长一段时间,因为并不是每个开发人员或每个开发人员商店一推出就可以访问最新和最优秀的IDE。
原始问题:
通常,我不会“需要”或者甚至不会考虑一个可笑的特性,比如方法体中的代码区域,但是:我正在重构VB.NET代码,其中方法通常运行500行或更多的代码,而且引用是如此紧密耦合,以至于代码无法进行简单的重构,比如方法提取。
这就是为什么我认为我会尝试在一个方法体中的区域。我只是想在短期内组织代码。但是IDE不允许我(导致编译器错误)。我只是好奇为什么?似乎代码区域不应该影响编译器、智能感知等等。我是不是遗漏了什么?(仍在使用VS 2005 )
有趣:,这似乎是特定于语言的。这在C#中是可以的(我最初没有检查过),但在VB.NET中没有。
public module MyModule
Sub RunSnippet()
dim a as A = new A (Int32.MaxValue )
#region
Console.WriteLine ("")
#end region
....这会得到一个编译器错误,但是C#版本是可以的。
发布于 2010-06-30 17:23:50
我认为代码区域可能不会在方法体中得到支持,因为就像您所说的那样,它们将是一个(有点)“荒谬的特性”--然而,在C#中,这个会工作,至少在VS 2008和VS 2010中是这样的--而不是在VB.NET中。
话虽如此,我还是会避免的。将区域放入方法体内只会导致人们做出更大的方法(因为这是唯一值得的时候),这是应该避免的,而不是鼓励。
如果您的代码:
挑战简单的重构,例如方法提取。
相反,我会专注于进行“复杂”重构(或任何可能发生的事情),以尝试拆分这些方法。您的“四五百行”长方法不可能在当前状态下可维护。
就我个人而言,我会让他们造成“痛苦”--让他们明白,他们需要工作,就在正前方和中间,直到你能把他们拆开,重新分解部分。
https://stackoverflow.com/questions/3151722
复制相似问题