C#中的编码方式

时间:2013-08-29 08:44:12

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

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

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等获取数据..所以使用嵌套方法

4 个答案:

答案 0 :(得分:2)

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

示例:

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

......但是:

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

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

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

答案 1 :(得分:1)

您的问题无法直接回答。

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

示例:

如果您有基本方法,则将数学表达式作为输入。并且该表达式包含Add,Subtract,Multiply和divide,然后您将以第一种方式调用它。

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

在上面的例子中,结果取决于所有四种方法,因此可以像这样调用它。

现在在你的例子2中,如果方法彼此完全独立,那么你应该按照自己的方式完全独立。

<强>结论:

对此没有严格的规则,您应该按照应用程序的要求调用。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

最后,这取决于你正在尝试做什么并适用,恕我直言,不仅仅是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(...); 
}

在上面的例子中,很难(对我来说)想象一下如第一个场景中的方法。