Newb在这里做了一些非常愚蠢的事我确定。
我正在尝试将一行代码转移到一个方法中。但是,当我这样做时,代码不再返回字符串变量'selection',就像我认为的那样,并且当我尝试测试打印它以确认我拥有它时不会返回它。
我期待发生的是GetSelection()会调用GetString来要求用户选择B,L或D,并根据用户输入,它将返回选择,然后打印到控制台。
代码:
while (PlayAgain())
{
GetSelection("(B)reakfast | (L)unch | (D)inner\n");
Console.WriteLine("You Selected: " + selection);
}
我的方法:
public String GetString(String txtStr)
{
Console.Write(txtStr + ": ");
return Console.ReadLine().ToLower().Trim();
}
public String GetSelection(String txtStr)
{
String selection = GetString("(B)reakfast | (L)unch | (D)inner\n");
return selection;
}
public Boolean PlayAgain()
{
String answer = GetString("Meal recommendation (Y) or (N)? ").ToLower().Trim();
return answer == "y";
}
请知道我已经尝试谷歌这个问题并阅读一些好东西,但我没有连接/理解我正在阅读的内容,以了解我的错误。谢谢你的帮助。
答案 0 :(得分:2)
你的错误在这里:
GetSelection("(B)reakfast | (L)unch | (D)inner\n");
您正在呼叫GetSelection
,但您没有存储返回值。使用此:
var selection = GetSelection("(B)reakfast | (L)unch | (D)inner\n");
Console.WriteLine("You Selected: " + selection);
答案 1 :(得分:1)
此处的问题是selction
是方法GetSelection
的局部变量。因此,您无法访问代码中的section
要解决此更改,您的代码如下所示,表示您需要存储来自方法GetSelection
的值并显示它。
while (PlayAgain())
{
var selection= GetSelection("(B)reakfast | (L)unch | (D)inner\n");
Console.WriteLine("You Selected: " + selection);
}