如何修复C#程序中重复提问问题(使用ReadLine()和return)
问题解决:程序重复提问的原因及修复
你的程序之所以重复提问,核心问题是两次调用了returnyNumber()方法:
- 第一次在
template()方法里调用,但没保存返回值,属于多余执行 - 第二次在
DisplayNumber()方法里调用,再次触发输入流程
只需要让returnyNumber()仅执行一次,复用结果即可,以下是两种修复方案:
方案1:利用类字段存储结果
修改TryReturn类的template和DisplayNumber方法:
public void template() { // 仅调用一次输入方法,将结果存入类的entryNum字段 entryNum = returnyNumber(); DisplayNumber(); } public void DisplayNumber() { // 直接使用已获取的结果,不再重复调用输入方法 WriteLine("number is " + entryNum); Read(); }
方案2:通过方法参数传递结果
这种方式更符合单一职责原则,无需依赖类字段:
public void template() { int userInput = returnyNumber(); DisplayNumber(userInput); } public void DisplayNumber(int inputNum) { WriteLine("number is " + inputNum); Read(); }
两种方案都能实现用户仅输入一次数字,程序正常显示结果的需求。
内容的提问来源于stack exchange,提问作者gon
相关产品推荐
相关产品推荐

