C# C语言的编码方法#

C# C语言的编码方法#,c#,web-services,.net-2.0,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); } P

有时我必须在类中编写大型代码,所以我所做的是这样的

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等获取数据。。因此,使用嵌套方法,您的问题不可能有一个直截了当的答案

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

示例:

如果你有一个基本方法,它会将一个数学表达式作为输入。这个表达式包含加,减,乘,除,然后你会称它为第一种方式

public int GetExpressionResult(string someExpression)
   {
         Divide();
         Multiply();
         Addition();
         Subtraction();
        return result;
   }
在上面的示例中,结果取决于所有四种方法,因此可以这样调用它

现在,在您的示例2中,如果这些方法完全独立于其他方法,那么您就不应该这样做

结论:


对于这一点没有硬性规定,您应该按照应用程序的要求进行调用。

您的问题不可能有一个直截了当的答案

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

示例:

如果你有一个基本方法,它会将一个数学表达式作为输入。这个表达式包含加,减,乘,除,然后你会称它为第一种方式

public int GetExpressionResult(string someExpression)
   {
         Divide();
         Multiply();
         Addition();
         Subtraction();
        return result;
   }
在上面的示例中,结果取决于所有四种方法,因此可以这样调用它

现在,在您的示例2中,如果这些方法完全独立于其他方法,那么您就不应该这样做

结论:


对于这一点没有硬性规定,你应该按照你的应用程序的要求来调用。

最后,这取决于你试图做什么和应用什么,IMHO,而不仅仅是应用于
C

method
method
的助手或包含在其中时,应应用第一个选项。我找不到这种情况的例子。
你的第二个例子对我来说更具可读性,应该在你有一长串需要执行的动作时应用。比如说:

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

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

最后,这取决于你在尝试做什么,并应用于什么,IMHO,而不仅仅是
C

method
method
的助手或包含在其中时,应应用第一个选项。我找不到这种情况的例子。
你的第二个例子对我来说更具可读性,应该在你有一长串需要执行的动作时应用。比如说:

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

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

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

示例:

repairVehicles() {
    repairCar();
    repairBike();
    repairTrain();
}
。。。但是:

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

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

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

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

示例:

repairVehicles() {
    repairCar();
    repairBike();
    repairTrain();
}
。。。但是:

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

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

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

就我理解你的问题而言,你所描述的基本上是一条管道。有一个非常有趣的博客(分为两部分和两部分),介绍如何优雅地处理你的情况

就我理解你的问题而言,你所描述的基本上是一条管道。有一个非常有趣的博客(分为两部分和两部分),介绍如何优雅地处理你的情况

我猜你的问题的合适位置是珍贵的,1tj可能是对的,但他们可能需要更多关于你想做什么的信息,例如,你能从方法2等开始吗?旁注:你可以使用
而不是
-
来获得相同的名称和数字分隔,但会产生合法的方法名称。我打算建议你的第二个选择。这更容易修改和测试(您可以在不自动调用其余方法的情况下测试单独的方法)我想您的问题的合适位置是宝贵的1tj可能是正确的,但他们可能需要更多关于您尝试做什么的信息,例如,你能从方法2等开始吗?旁注:你可以使用
而不是
-
来获得相同的名称和数字分隔,但会产生合法的方法名称。我打算建议你的第二个选择。这更容易修改和测试(您可以测试单独的方法,而不自动调用其余的方法)我正在做类似于第二个的事情,这对我来说很有意义,谢谢:)我正在做类似于第二个的事情,这对我来说很有意义,谢谢:)+1,谢谢david,这看起来像我要找的东西,但我浏览了很多博客文章,但一个字也看不懂。老实说:(也许我还没到那种程度去理解它们。)+1,谢谢大卫,这看起来像我要找的东西,但我浏览了很多博客文章,但一个字也看不懂(也许我还没有达到这个水平去理解他们。