Mam klasę A gdzie c jest parametrem opcjonalnym o domyślnej wartości równej 5.
class A
{
public int Fun(int a, int b, int c = 5)
{
return a + b * c;
}
}
Oraz klasę B
class B
{
// jakieś inne funkcje, żadna funkcja z klasy A nie jest przeładowywana (przeciążana)
}
Problem polega na tym, że w klasie B funkcja Fun nie ma zdefiniowanego parametru opcjonalnego, np.
var a = new A();
Console.WriteLine(a.Fun(1, 2)); // nie ma błędu
var b = new B();
Console.WriteLine(b.Fun(1, 2)); // jest błąd, kompilator domaga się podania trzeciego parametru c
O co chodzi? Dlaczego w drugim przypadku muszę podać parametr opcjonalny?