方法中的方法太多了?

时间:2015-11-03 09:46:23

标签: c# function methods

在我的Main()我从MethodA()致电ClassA,然后从MethodB()拨打ClassB,依此类推。在最终将我想要的值返回到Main()之前,这大约需要5层。

有一个对象在每种方法中被传递并处理。

这是一个好习惯吗?这种情况还有另一种方法吗?

3 个答案:

答案 0 :(得分:2)

是的,这是一个很好的做法。

5级仍然非常接近。在500,你可能会停下来思考它,在5000它会变得令人担忧。

  

有一个对象在每种方法中被传递并处理。

它将通过引用传递,因此没有开销。

答案 1 :(得分:0)

调用堆栈的深度为5是没有的。在Windows窗体或WPF应用程序中完成任何操作之前,您已经有一个5的调用堆栈。

将一个框架放在堆叠上会花费一些成本,但是现在你不必过于担心。你必须注意你是否要做递归的事情,因为帧的数量可以迅速增加。这可能会变得昂贵。

如果您丢失了调用堆栈的概述,则必须担心。在我看来,100的调用堆栈很难读,肯定是你是初学者。

答案 2 :(得分:0)

如果您正在使用算法 - 例如 - 以递归方式运行一系列字符来生成每个字符组合(不,我不是一个强力密码黑客!) - 然后是一个深度递归调用堆栈也许是解决方案的一部分。

正如Henk Holterman所说,通过引用传递的每个对象只是一个指针,32位整数或64位整数,具体取决于处理器体系结构/构建配置。这是每次调用的4个字节或8个字节。