Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何(使用TryParse)将方法中的字符串解析为全局int_C#_Methods_Global Variables - Fatal编程技术网

C# 如何(使用TryParse)将方法中的字符串解析为全局int

C# 如何(使用TryParse)将方法中的字符串解析为全局int,c#,methods,global-variables,C#,Methods,Global Variables,我正在努力将用户输入解析为全局整数 当我在声明全局scoreString之后给它一个值,就像这个静态字符串scoreString=55-它起作用了 static string scoreString = "55"; static bool scoreBool = int.TryParse(scoreString, out score); static int score; static void Main(string[] args) {

我正在努力将用户输入解析为全局整数

当我在声明全局scoreString之后给它一个值,就像这个静态字符串scoreString=55-它起作用了

    static string scoreString = "55";
    static bool scoreBool = int.TryParse(scoreString, out score);
    static int score;

    static void Main(string[] args)
    {
        Console.WriteLine("====STUDENT AVERAGE CHECKER====");
        AverageMaker();

        if (scoreBool)
        {
            Console.WriteLine("Parsing good");
            Console.WriteLine(score);
        }
        else
        {
            Console.WriteLine("Parsing fail");
            Console.WriteLine(score);
        }

        Console.Read();
    }

    public static void AverageMaker()
    {
        Console.WriteLine("-----Enter score---");
        scoreString = Console.ReadLine();
    }
您需要在Main函数的外侧解析scoreString。从控制台读取字符串后,在AverageMaker函数中解析它

大概

public static void AverageMaker()
{
    Console.WriteLine("-----Enter score---");
    scoreString = Console.ReadLine();
    scoreBool = int.TryParse(scoreString, out score); //This was missing
}

作为readline的结果删除新行字符:scoreString=scoreString.Replace\r\n,string.Empty;并尝试在AverageMaker中解析

,您没有重置scoreBool=int.tryparseScrestring,out score。它在初始化时设置为true,但从不更改。在将新值设置为scoreString后,您需要解析它吗?这不是很明显吗?为什么如此静态?@Selvin我认为OP是一个误解的受害者,静态bool scoreBool=int.TryParsescoreString,out score;像某种宏一样工作?这对我们来说可能是有益的,但如果我只是从编程开始,我不能说我可能没有同样的误解;返回带有\n?这不是问题所在,您发布的Oleg.Code不会再次尝试将其解析为scoreStringSince,因为当Console.ReadLine时;请返回带有Oleg的\r\n输入。不要在评论中写解决方案。把它写在你的答案里。当前答案中的文本无效,与问题无关。如果不明显,函数外的代码会在函数之前运行,因此分析是在用户输入scoreString之前进行的。@RobinBennett,完全同意。这就是我想在这里表达的意思。解析字符串的正确位置非常感谢。成功了。谢谢你的回答Telkikar先生谢谢你的解释Bennett先生。这是一个棘手的问题,我以为我是疯了,但我会记住提示!!