【问题标题】:Way of coding in C# [closed]C#中的编码方式[关闭]
【发布时间】:2013-08-29 08:44:11
【问题描述】:

有时我必须在课堂上编写大代码,所以我所做的就是这样,

Class ABC   //it's a web service class
{
   Public void Method-1() //used "-" for easy to read
   {
       //DoSomething and get something from database
       Method-2(pass parameters that i got from database);  
   }

   Public void Method-2(parameters)
   {
       DoSomething again and get data from another database. and some other source
       do some processing by calling web services (just as example)
       Method-3(parameter);
   }

   Public void Method-3(parameters)
   {
       DoSomething again and get data from another database. and some other source
       do some processing by calling web services (just as example)
       Method-4(parameter);
   }

   // and it keeps going
}

另一种方式

Class ABC   //it's a web service class
{
   Public void Method-1() //used "-" for easy to read
   {
       Method-2();
       Method-3();
       Method-4();
       // so on....
    }
}

这是正确的做法吗?如果不是,那么最好的做法是什么?

编辑

@Sayse 我正在尝试从不同来源获取信息并尝试构建一个大的 XML 文件,这使我可以使用 4、5 个 foreach 循环从 sql 等获取数据。所以使用嵌套方法

【问题讨论】:

  • 我猜你的问题的合适位置是codereview.stackexchange.com
  • Precious 1tj 可能是对的,但他们可能需要更多关于您正在尝试做什么的信息,即您可以从方法 2 等开始
  • 作为旁注:您可以使用 _ 而不是 - 来获得相同的名称和数字分隔,但会产生合法的方法名称。
  • 我将建议您的第二个选项。这更容易修改和测试(您可以测试单独的方法而无需自动调用其余方法)

标签: c# web-services .net-2.0


【解决方案1】:

两种方式在不同的情况下都很好。如果你有单一的功能,你应该把它们分开。第二种方法 - 当一种方法是“外部”功能的一部分时,应该使用从方法调用方法。

例子:

repairVehicles() {
    repairCar();
    repairBike();
    repairTrain();
}

...但是:

repairCar() {
    ...
    repairEngine();
    ...
}

repairEngine() {
    ...
    takeEngineOut();
    ....
}

takeEngineOut() {
    ...
    unscrewBolts();
    ...
}

【讨论】:

  • 我正在做类似第二个的事情,这对我来说很有意义,谢谢:)
【解决方案2】:

您的问题没有直接的答案。

首先你应该注意一个方法应该执行一个功能。如果它是真的,那么你可以根据你的要求来调用它。

示例:

如果您有一个基本方法,则将数学表达式作为输入。并且该表达式包含加、减、乘和除,那么您将称之为第一种方式。

public int GetExpressionResult(string someExpression)
   {
         Divide();
         Multiply();
         Addition();
         Subtraction();
        return result;
   }

在上面的例子中,结果依赖于所有四个方法,所以可以这样调用它。

现在在您的示例 2 中,如果这些方法彼此完全独立,而不是您应该采用的方式。

结论:

对此没有硬性规定,您应该按照应用程序要求的方式调用。

【讨论】:

    【解决方案3】:

    据我了解您的问题,您所描述的基本上是一个管道。有一个非常有趣的博客(分为两部分 herehere)关于如何优雅地处理你的情况。

    【讨论】:

    • +1,谢谢大卫,它看起来像我要找的东西,但我彻底浏览了博客文章,但说实话一个词都听不懂:(也许我还没有达到那个水平理解他们。
    【解决方案4】:

    最后,这取决于你想要做什么和应用什么,恕我直言,不仅仅是C#

    method<i+1>method<i> 的助手或包含在其中时,应应用您的第一个选项。我找不到这种情况的示例。
    您的第二个示例对我来说更具可读性,当您需要执行一长串操作时,应该应用它。让我们说:

    void mainMethod()
    {
        ConnectToDB(); //if can't connect, log it and exit
        GetUserInfo(...); //if null, log it and exit
        ShowUserInfo(...); 
    }
    

    在上面的示例中,(对我来说)很难想象像第一个场景中那样对方法进行划分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 2016-12-22
      • 2011-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多