【发布时间】:2017-02-10 17:28:12
【问题描述】:
我正在尝试创建一个简单的背包程序。这是学校的作业,我几乎完成了,只是我无法用新背包替换背包中的物品。
我猜测为什么它可能不起作用是我无法替换item,因为它在全局范围内,但我不知道如何修复它。代码如下:
static void Main(string[] args)
{
bool isRunning = true;
while (isRunning)
{
Console.WriteLine("\n\tWelcome to the backpack!");
Console.WriteLine("\t[1]Add an item");
Console.WriteLine("\t[2]Show contents");
Console.WriteLine("\t[3]Clear contents");
Console.WriteLine("\t[4]Exit");
Console.Write("\tChoose: ");
int menyVal = Convert.ToInt32(Console.ReadLine());
string item;
item = "Empty space";
switch (menyVal)
{
case 1:
Console.WriteLine("\n\tContents of backpack:");
Console.WriteLine("\n\t" + item);
Console.WriteLine("\n\tWhat do you want to replace " + item + " with?");
item = item.Replace(item, Console.ReadLine());
Console.WriteLine("\n\tYou have packed " + item + " in your backpack");
break;
case 2:
Console.WriteLine("\n\tContents of backpack:");
Console.WriteLine("\n\t" + item);
Console.WriteLine("\n\tPress any key...");
Console.ReadKey();
break;
case 3:
item = "Tom plats";
Console.WriteLine("\n\tYou have emptied the backpack!");
break;
case 4:
isRunning = false;
break;
default:
Console.WriteLine("Incorrect input!");
break;
}
}
}
关于如何解决这个问题的任何想法?非常感谢提示! 谢谢!
【问题讨论】:
-
您是否尝试过调试代码以查看实际情况?遍历每一行,观察变量。
-
当您在菜单中按 1 时,系统会提示用户输入应该替换存储在“item”中的字符串的内容。但它并没有,它与第一个声明“空白空间”保持相同。
-
由于
item只是一个字符串,您可以简单地分配它item = Console.ReadLine();而不是使用item.Replace(); -
请阅读How to debug。
标签: c#