C#:如何为此代码编写另一个函数

本文关键字:另一个 函数 代码 | 更新日期: 2023-09-27 18:33:57

我将如何为此代码编写另一个名为noNegatives的函数?我想用另一个名为noNegatives的函数重写代码,但我仍然希望程序做同样的事情。

    class Program
    {
        static void Main(string[] args)
        {
            string numberIn;
            int numberOut;
            numberIn = Console.ReadLine();
            while (!int.TryParse(numberIn, out numberOut) || numberOut < 0)
            {
                Console.WriteLine("Invalid. Enter a number that's 0 or higher.");
                numberIn = Console.ReadLine();
            }
        }       
    }

C#:如何为此代码编写另一个函数

static void Main(string[] args)
{
    int number = NoNegatives();
}
static int NoNegatives()
{
    int numberOut;
    string numberIn = Console.ReadLine();
    while (!int.TryParse(numberIn, out numberOut) || numberOut < 0)
    {
        Console.WriteLine("Invalid. Enter a number that's 0 or higher.");
        numberIn = Console.ReadLine();
    }
    return numberOut;
}

Follwing是最简单的写法

static void Main(string[] args)
            {
                int retVal=0; 
                string numberIn;
                int numberOut;
                numberIn = Console.ReadLine();
                while(noNegatives(numberIn,numberOut)=0)
                {
                }
             } 
    int noNegatives(String numberIn,int numberOut)
    {

                numberIn = Console.ReadLine();
                if (!int.TryParse(numberIn, out numberOut) || numberOut < 0)
                {
                    Console.WriteLine("Invalid. Enter a number that's 0 or higher.");
                    return 0;
                }
                else
                {
                   return 1;
                }
    }

这个问题与这里发布的问题非常相似。

    static void Main(string[] args)
    {
        string numberIn = Console.ReadLine();
        int numberOut;
        while(!IsNumeric(numberIn))
        {
            Console.WriteLine("Invalid.  Enter a number that's 0 or higher.");
            numberIn = Console.ReadLine();
        }
        numberOut = int.Parse(numberIn);
    }
    private static bool IsNumeric(string num)
    {
        return num.ToCharArray().Where(x => !Char.IsDigit(x)).Count() == 0;
    }

由于负号不是数字,因此对于负数,IsNumeric 将返回 false。