Невозможно получить значение по умолчанию только из метода. Это может помочь вам сделать значение по умолчанию константой в вашем классе. Например:
private const double epsilonDefault = 2.2e-16;
public static double ComputeFoo(double nom, double den, double epsilon = epsilonDefault)
{
double den1 = den == 0.0 ? epsilon : den;
if (den1 == 0) den1 = epsilonDefault;
return nom / den1;
}
Таким образом, ваше значение по умолчанию объявляется вне метода и доступно, когда вам это нужно.
РЕДАКТИРОВАТЬ: Чтобы завершить, с помощью отражения можно сделать это, но это кажется слишком много для этого вопроса. Базовый c пример того, как сделать это с помощью отражения:
public static void Execute(int number = 10)
{
Console.WriteLine(number);
var defaultValue = typeof(Program)
.GetMethod("Execute")
.GetParameters()[0]
.DefaultValue;
Console.WriteLine(defaultValue); // 10
}