Python支持函数递归(含嵌套函数递归),C#能否实现该功能?
C#是否支持嵌套函数的递归调用?
C# 完全支持本地函数(嵌套在方法内的函数)的递归调用,你提供的代码只是存在几处语法错误,修正后即可正常运行。
你代码中的问题:
- C#是大小写敏感语言,
main方法名需要大写为Main Console.ReadLine()需要补全括号和语句结尾的分号- 本地函数
stuff需要在Main方法内主动调用一次才会启动递归流程
修正后的完整代码:
namespace f { class f { static void Main(string[] args) { void Stuff() { Console.ReadLine(); Stuff(); // 递归调用本地函数,语法完全合法 } // 启动递归循环 Stuff(); } } }
模仿Python的命令处理场景示例:
如果要实现类似Python里避免重复输入逻辑的命令处理,用C#本地函数递归可以这么写:
namespace CommandHandler { class Program { static void Main(string[] args) { void HandleCommand() { Console.Write(">"); string input = Console.ReadLine(); if (input == "help") { Console.WriteLine("commands: help, exit"); HandleCommand(); // 递归调用,继续等待下一次输入 } else if (input == "exit") { return; // 终止递归流程 } else { Console.WriteLine("未知命令,请输入help查看可用指令"); HandleCommand(); } } HandleCommand(); } } }
内容的提问来源于stack exchange,提问作者user20317966
相关产品推荐
相关产品推荐

