C# 如何(使用TryParse)将方法中的字符串解析为全局int
我正在努力将用户输入解析为全局整数 当我在声明全局scoreString之后给它一个值,就像这个静态字符串scoreString=55-它起作用了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) {
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先生。这是一个棘手的问题,我以为我是疯了,但我会记住提示!!