Double.Parse()
всегда генерирует исключение FormatException, если входные данные не имеют форму допустимого двойного числа.
Поведение значений параметров по умолчанию заключается в том, что пропуск параметра при вызове метода заставит его вместо этого использовать значение по умолчанию (это делается путем вставки значения по умолчанию в вызов метода во время компиляции). Нет языкового поведения, которое позволяло бы автоматически заменять недопустимое значение каким-либо значением по умолчанию.
В вашем случае вам нужно выгрузить пустое значение, которое будет равно Double.Parse()
. Как то так:
class Program
{
static void Main(string[] args)
{
WriteLine("What is the radius of your circle: ");
var input = ReadLine();
if (!double.TryParse(input, out var value))
WriteLine($"Invalid input received: {value}");
else
WriteLine("The area of your circle is: " + circleArea(value).ToString());
ReadKey();
}
static double circleArea(double radius = 5.00)
{
return Math.PI * (radius * radius);
}
}