C# 通过做项目学习

C# 通过做项目学习,c#,C#,我已经输入了一些代码来尝试和实践我在编程课程中学到的东西。我的逻辑有些问题,因为我没有得到我应该得到的答案 我已经搜索和谷歌,并重新观看了培训视频,但似乎没有任何帮助 namespace TenPinBowling { class Program { static void Main(string[] args) { while (true) { Console.Wr

我已经输入了一些代码来尝试和实践我在编程课程中学到的东西。我的逻辑有些问题,因为我没有得到我应该得到的答案

我已经搜索和谷歌,并重新观看了培训视频,但似乎没有任何帮助

namespace TenPinBowling 
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                Console.Write("Would you like to bowl, Y or N: ");
                var answer = Console.ReadLine();

                if (answer == "n")
                {
                    Console.WriteLine("Thanks for playing, press any to exit :)");
                    Console.ReadKey();
                    break;

                }

                Score();                
            }
        }

        static void Score()
        {

            {
                Random pins = new Random();
                var pinsKnockedDown = pins.Next(0, 10);
                //var totalScore = 0;

                Console.WriteLine("You bowled a: " + pinsKnockedDown);

                //var result = totalScore + pinsKnockedDown;

                Console.WriteLine("You're total score is: " + Tally(pinsKnockedDown));


            }
        }

        static int Tally(int score)
        {
            {
                int result = 0;
                result = result + score;
                return result;
            }
        }

    }
}
我希望我的第二种方法能保持我的总得分,但每次都会重置为个人得分。

static int Tally(int score)
        {
            {
                int result = 0;
                result = result + score;
                return result;
            }
        }
每次调用该方法时都会创建一个新的局部变量结果,因此过去的分数记录将丢失。将结果设置为类的字段将允许它在游戏期间保持不变。最小的代码更改可能是:

private static int result = 0;

static int Tally(int score)
{
    result = result + score;
    return result;
}

我想如果你的总分不需要重置的话,你总是需要记录你的总分。现在你总是把当前的分数加在一起。如果将int结果置于tally之外,它应该相应地进行跟踪。

那么您应该得到什么样的响应?您不会将总数保存在任何位置,并且总是将分数相加为零。即使tally函数是静态的,它的局部变量也会在每次调用时初始化。您的结果变量需要在其他地方声明;结果=结果+分数;因为结果是零,result=0+scoredeclare结果在Tally之外我知道还有很多其他的建议可以提出,但这至少应该解决问题!是的,比如为什么嵌套{{}}?或者你可以写结果+=分数;而不是结果=结果+分数;或者,您每次调用Score时都会创建一个新的随机值,最好使用相同的值。仍在解决OP面临的紧迫问题: