C# 传递一个带有可选默认值的整数变量

cir*_*ark 5 c# default optional

class Program
{
    static void Main(string[] args)
    {
        WriteLine("What is the radius of your circle: ");
        WriteLine("The area of your circle is: " + 
            circleArea(Double.Parse(ReadLine())).ToString());
        ReadKey();
    }

    static double circleArea(double radius = 5.00)
    {            
        return Math.PI * (radius * radius);
    }
}
Run Code Online (Sandbox Code Playgroud)

我以为我已经正确设置了;但是,我收到 System.FormatException 错误:'输入字符串的格式不正确。在WriteLine("The area of your circle is: " + circleArea(Double.Parse(ReadLine())).ToString());没有输入值的情况下就行。我希望它的默认值为 2。谢谢。

Fra*_*mas 6

您的问题是您需要拆分转换才能测试错误的输入条件。看看这段代码。

            Console.WriteLine("What is the radius of your circle: ");
        var isNumber = Double.TryParse(Console.ReadLine(), out double number);
        if (!isNumber)
            number = 0;
        Console.WriteLine("The area of your circle is: " + circleArea(number).ToString());
        Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)

这将测试一个合法的数字,如果不是,它只是传递零作为数字。