【问题标题】:'Var' does not exist in current context (Lost in my my method)当前上下文中不存在“Var”(迷失在我的方法中)
【发布时间】:2014-02-28 11:38:53
【问题描述】:

我敢肯定,新手在这里做了一些非常愚蠢的事情。

我正在尝试将一行有效的代码放入一个方法中。但是,当我这样做时,代码不再像我想象的那样返回字符串变量“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";
}

请知道我已经尝试用谷歌搜索这个问题并阅读了一些好东西,但我没有连接/理解我正在阅读的内容,足以理解我的错误。感谢您的帮助。

【问题讨论】:

    标签: c# string methods console var


    【解决方案1】:

    这里的问题是selction 是方法GetSelection 的局部变量。所以你不能在代码中访问section

    要解决此更改,您的代码如下所示,意味着您需要存储来自方法 GetSelection 的值并显示它。

    while (PlayAgain())
    {
        var selection= GetSelection("(B)reakfast | (L)unch | (D)inner\n");
         Console.WriteLine("You Selected: " + selection); 
    }
    

    【讨论】:

    • 谢谢您,我将对此进行探索并尝试将您所说的内容内化。谢谢。将报告结果。
    • 这行得通。感谢您提供了一个很好的答案 - 您给出了一个非常可靠的答案并帮助我更深层次地理解了我的问题的背景,然后我意识到(代码很有趣 - 令人沮丧但很有趣!)我想我认为 String 是Var,但我猜这不一定是真的?如此令人敬畏的理解 - 谢谢你 Pranay Rana!
    【解决方案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); 
    

    【讨论】:

    • 谢谢你,我会探索这个并尝试将它内化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 2023-03-30
    • 2023-03-08
    • 2019-08-05
    • 2020-07-31
    • 2021-01-16
    相关资源
    最近更新 更多