有时我必须在课堂上编写大代码,所以我所做的就是这样,
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等获取数据..所以使用嵌套方法
答案 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)
答案 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(...);
}
在上面的例子中,很难(对我来说)想象一下如第一个场景中的方法。