Я работаю в персонализированном классе математики, я намерен реализовать основные методы операций, чтобы они складывали, вычитали, умножали или делили простым способом без необходимости каждый раз вызывать операторы + - * /
.
public class XMath
{
public static double Sum(params double[] values)
{
double result = 0;
if (values.Length < 1 || values is null) result = 0;
else if (values.Length == 1) result = values[0];
else foreach (double value in values) result += value;
return result;
}
public static double Subtract(params double[] values)
{
double result = 0;
if (values.Length < 1 || values is null) result = 0;
else if (values.Length == 1) result = values[0];
else foreach (double value in values) result -= value;
return result;
}
public static double Multiply(params double[] values)
{
double result = 0;
if (values.Length < 1 || values is null) result = 0;
else if (values.Length == 1) result = values[0];
else foreach (double value in values) result *= value;
return result;
}
public static double Divide(params double[] values)
{
double result = 0;
if (values.Length < 1 || values is null) result = 0;
else if (values.Length == 1) result = values[0];
else foreach (double value in values) result /= value;
return result;
}
}
Моя проблема в том, что метод Sum работает отлично, но другие выдают неверные результаты.
Итак, если += работает, потому что -=, *= и /= нет
if (values.Length < 1 || values is null)
вы должны изменить порядок этих проверок. Эта строка вызовет исключение, когда 2-я часть условия верна, потому что 1-я часть завершится ошибкой до того, как будет проверена 2-я часть. - person Joel Coehoorn   schedule 25.03.2018