自己看了一下资料:Recursive versions of many routines may execute a bit more slowly than the iterative equivalent because of the added overhead of the additional method calls. Too many recursive calls to a method could cause a stack overrun. Because storage for parameters and local variables is on the system stack, and each new call creates a new copy of these variables, it is possible that the stack could be exhausted. If this occurs, the CLR will throw an exception. However, you probably will not have to worry about this unless a recursive routine runs wild.
equivalent because of the added overhead of the additional method calls. Too many recursive
calls to a method could cause a stack overrun. Because storage for parameters and local
variables is on the system stack, and each new call creates a new copy of these variables, it
is possible that the stack could be exhausted. If this occurs, the CLR will throw an exception.
However, you probably will not have to worry about this unless a recursive routine runs wild.