Я играл с необязательными параметрами и натолкнулся на следующий сценарий.
Если у меня в классе есть метод, в котором все параметры являются необязательными, я могу написать следующий код:
public class Test
{
public int A(int foo = 7, int bar = 6)
{
return foo*bar;
}
}
public class TestRunner
{
public void B()
{
Test test = new Test();
Console.WriteLine(test.A()); // this recognises I can call A() with no parameters
}
}
Если я затем создаю интерфейс, такой как:
public interface IAInterface
{
int A();
}
Если я заставлю класс Test реализовать этот интерфейс, он не будет компилироваться, так как говорит, что член интерфейса A () из IAInterface не реализован. Почему реализация интерфейса не разрешена как метод со всеми необязательными параметрами?