Вариативный параметр в методе C# [требует правки]

299
06 августа 2017, 05:57

Реально ли создать метод с вариативным параметром, который можно не указывать?

static double Discriminant(double a, double b, double c, double d)
{
    d = (b * b) - 4 * a * c;
    return d;
}

Это метод подсчета дискриминанта

double QE = Discriminant(a: 23, b: 15, c: 12);

Это переменная, которой присваивается значение, которое считает вышеуказанный метод. Но задав d мы распечатываем, не то что мы посчитали, а то что мы задали. В этом и проблема

Answer 1

Есть три варианта:

  1. double Discriminant(double a, double b, double? c = null, double? d = null)?
  2. public static void Program(params object[] args) (схожий вопрос тут)
  3. Перегрузка метода.

PS Зачем вам вообще d? Можно написать проще:

static double Discriminant(double a, double b, double c)
{
    return (b * b) - 4 * a * c;
}
double QE = Discriminant(a: 23, b: 15, c: 12);

Насчёт:

точно ведь, можно просто объявить ее в методе не передавая.

Эта переменная используется менее двух раз (не нужна для дальнейших расчётов), её можно не объявлять. Удобство разве что для отладки.

READ ALSO
Переполнение буфера в C#

Переполнение буфера в C#

Стоит ли переживать насчёт атак "переполнения буфера" в WPF C# и при условии что программа работает на TCP сокетах, то есть активное взаимодействие...

418
IKernel не могу найти сборку

IKernel не могу найти сборку

Начинаю изучать ASPNET

365
Сокрытие кода с# [дубликат]

Сокрытие кода с# [дубликат]

На данный вопрос уже ответили:

435
c# подставлять элементы массива

c# подставлять элементы массива

Народ подскажите как мне реализовать следующее, есть разрешение в конце имени файла "1024x768", "1280x1024" их всего 4мне нужно чтобы проверялось имя...

357