帮助方法的组织

时间:2015-06-15 19:01:10

标签: c#

我在类中有一些方法只能在同一个类中调用一个方法。这种方法的最佳实践在哪里?在课程结束时私人? 来自gcc的C实现,我将在他们需要的方法中定义那些辅助方法,但这似乎不适用于C#。

2 个答案:

答案 0 :(得分:1)

正如你所提到的,我经常在课程结束时使用私有方法。但是如果这些辅助方法与调用方法密切相关,则可以将它们放在调用方法之后,并将它们全部包含在#region中以对它们进行可视化分组,并允许将它们作为一个单元进行扩展/折叠。 Visual Studio。

    #region Range Checking
    public void CheckRange(int lowerBound, int upperBound)
    {
        CheckRangeValue(lowerBound);
        CheckRangeValue(upperBound);
    }
    private void CheckRangeValue(int value)
    {
        //...
    }
    #endregion

答案 1 :(得分:0)

在Bob Martin的优秀书籍Clean Code中,有一章关于垂直格式化,其中一节标题为“The Newspaper Metaphor”。我会发一个摘录(强调我的):

  

想想一篇精心撰写的报纸文章。你是垂直阅读的。在顶部,您需要一个标题,告诉您故事的内容,并让您决定是否是您想要阅读的内容。第一段为您提供了整个故事的概要,隐藏了所有细节,同时为您提供了广泛的概念。当您继续向下时,细节会增加,直到您拥有所有日期,名称,引号,声明和其他内容   细节。

     

我们希望源文件像报纸文章。名称应该简单但解释性。这个名称本身应该足以告诉我们我们是否在正确的模块中。源文件的最顶层部分应该提供高级概念和算法。

     

随着我们向下移动,细节应该会增加,直到最后我们在源文件中找到最低级别的函数和细节。

前面几页:

  

如果一个函数调用另一个函数,它们应该垂直关闭,   如果可能的话,调用者应该高于被调用者。这给程序带来了自然的流动。如果遵循惯例,读者将能够相信功能定义将在使用后不久进行。

     

(...)[T]他最顶层的函数调用它下面的那些和(...)它们依次   打电话给他们。这样可以很容易地找到被调用的函数,并大大增强了整个模块的可读性。

除了这个特定的主题外,本书还包含大量其他非常有用的资金充足的信息,这些信息有关这些有时被忽视的代码构造方面。