C# 区域和内部区域的最佳使用

C# 区域和内部区域的最佳使用,c#,C#,我从很多开发人员那里看到了很多旧代码 #区域#结束区域 有时可能会有帮助,但如果使用得当 如何使用它来保持代码的条理化和易读性是最好的方法?如果这是您所要求的,那么它并不意味着什么特别的东西。它唯一的特殊效果是在VisualStudio中进行代码折叠 如果您有一个执行一些任务的大型类,那么最好通过分离属性、不同的方法组、接口实现以及您认为重要的其他内容来划分它。没有严格的规定 class MyReallyBigClass : IAwesome, INotAsAwesome { #regi

我从很多开发人员那里看到了很多旧代码

#区域#结束区域

有时可能会有帮助,但如果使用得当


如何使用它来保持代码的条理化和易读性是最好的方法?

如果这是您所要求的,那么它并不意味着什么特别的东西。它唯一的特殊效果是在VisualStudio中进行代码折叠

如果您有一个执行一些任务的大型类,那么最好通过分离属性、不同的方法组、接口实现以及您认为重要的其他内容来划分它。没有严格的规定

class MyReallyBigClass : IAwesome, INotAsAwesome
{
    #region Public Properties
    public string Test { get; set; }
    // ..
    #endregion

    #region IAwesome Implementation
    public void IAwesome.BeAwesome()
    {
        // ..
    }
    public int IAwesome.AwesomeLevel()
    {
        // ..
    }
    #endregion

    #region INotAsAwesome Implementation [[...]]

    #region Internal Fields
    private int _whatever;
    // ..
    #endregion
}

当然,在实践中,您不会得到一个如此大的类,以至于需要将其分离出来,但我通常会发现自己至少在属性和接口实现方面使用它。

这纯粹是为了帮助IDE的可读性。它实际上是在编译时删掉的


也就是说,我倾向于遵循微软关于使用的风格指导原则:分组方法、属性、构造函数等-很少,如果有的话,在方法内部,也从不在大括号构造(if、for等)和大括号之间。

如果我的类有足够的代码,我必须使用区域来组织它,我真的考虑分开我的担心,并把它分成两个或两个以上的类。甚至考虑部分课程。@gustavodidomenico-我完全同意。这个问题很常见,你问的是“如何组织你的文件”,或者这是你的答案:这是一个相当非建设性的问题,因为它会导致大量关于什么是好的组织的讨论和辩论。然而,就其本身而言,这是一个很好的问题,对于SO及其Q&a格式来说,它太笼统和主观了只是无缘无故地偶然发现了这个问题。抱歉,但“你不会真的得到一个这么大的类,你需要把它分开”是一个梦想。我开始研究15K LoC类,还有更多的类(我们实际上把它们分成了几个文件)。因此,如果我的任何一门课将来会成为其中一门课,我会从一开始就把它分开。这是特定于地区的,15K LoC课永远不应该出现,通常是多年货物崇拜的结果。