代码错误排查请求:需调用Game与FullName方法输出结果,求指出问题
C#代码错误排查与修正
原代码中的核心问题
- 方法嵌套非法:C#不允许在方法内部定义另一个方法,
FullName不能放在Game方法里。 - 无限递归死循环:
Game里写return Game();会反复调用自己,直接触发栈溢出异常。 - 字符串语法错误:
FullName返回的字符串存在未处理的换行,编译无法通过。 - 逻辑不符合需求:完全没实现“调用Game后调用FullName”的预期,反而错误地递归调用自身。
修正后的代码
namespace WebApplication1.Controllers { public class DomainController : Controller { public string Game() { // 按需传入具体的名和姓,示例用"John"和"Doe" return FullName("John", "Doe"); } public string FullName(string first, string last) { if (!string.IsNullOrEmpty(first) && string.IsNullOrEmpty(last)) return $"Your First Name is = {first}"; else if (string.IsNullOrEmpty(first) && !string.IsNullOrEmpty(last)) return $"Last Name is = {last}"; else if (!string.IsNullOrEmpty(first) && !string.IsNullOrEmpty(last)) return $"Your First Name is = {first} And Last Name is = {last}"; else return "Both first and last names are empty"; } } }
修正说明
- 把
FullName移到类的直接成员位置,符合C#语法规则。 - 修改
Game的返回逻辑为调用FullName,彻底解决递归问题,同时实现“调用Game后触发FullName”的需求。 - 用字符串插值替换原有的拼接方式,解决换行导致的语法错误,代码也更简洁易读。
- 补充了“两个名字都为空”的分支,让逻辑覆盖更完整。
内容的提问来源于stack exchange,提问作者MAYANK
相关产品推荐
相关产品推荐

