从方法返回一个 int,并在 c# 中输入文本

Returning an int from a method, and text input in c#

我只是很困惑,需要一些帮助。我真的不知道 numCheck 方法中 num 的 return 是怎么回事。我的老师说它应该看起来像现在一样,所以 returned 是什么,我该如何使用它?我正在尝试制作一个程序来询问数学问题的答案(例如 2 + 2),如果用户输入的是 4,它就会结束,但会再次询问其他任何问题。这应该需要 5 分钟,我只是不明白他的意思。谢谢!

namespace readNumber
{
    class Program
    {
        static void Main(string[] args)
        {
              //should be a loop around this method call
              //for(......)
                numCheck();

            Console.ReadLine();
        }

        static int numCheck()
        {
            bool itWorked;
            int num;

            do
            {
                Console.Write("Enter a Number: ");
                string numSt = Console.ReadLine();
                Console.WriteLine(numSt);
                itWorked = int.TryParse(numSt, out num);

                if (itWorked)
                {
                    Console.WriteLine("Integer assigned: " + num);  
                }
                else
                {
                    Console.WriteLine("It Failed");
                }
            }
            while (!itWorked);

            return num;
        }
    }
}

每当我尝试在主程序中使用 num 时,我得到最多的错误是 "the name "num“在当前上下文中不存在”

我来回答问题:

what was returned and how can I use it?

方法numCheck的返回值num只是用户输入的数字,实际上该方法一直循环直到用户输入有效 数,比它 打破 do-while 循环和 returns num.

现在,您可以直接使用checkNum从用户那里获取号码。 示例:

Console.WriteLine("What is 2+2 ?");
int ans = checkNum();

if(ans == 4)
{
  Console.WriteLine("Yes ! that is correct");
}
else
{
  Console.WriteLine("No!, false answer");
}

您还没有在主程序中定义任何名为 num 的变量。

为了使用从 checkNum() 返回的值,您需要将它分配给一个变量,就像@chouaib 的解决方案一样。

你的主应该是这样的

    static void Main(string[] args)
    {
          int num;
          //should be a loop around this method call
          //for(......)
          num = numCheck();

        Console.ReadLine();
    }