Рассмотрим следующий интерфейс с реализацией по умолчанию TestMethod
public interface TestInterface
{
public int TestMethod()
{
return 15;
}
}
Зовущий TestMethod
в следующем классе вызовет исключение StackOverflowException:
public class TestClass : TestInterface
{
public int TestMethod()
{
return 1 + (this as TestInterface).TestMethod();
}
}
Теперь я понимаю, почему это так, но есть ли какой-нибудь способ обойти это? Что-то вроде base.TestMethod()
для ссылки на один из реализованных интерфейсов класса?
Я знаю, что мог бы переименовать метод в TestInterface и ссылаться на него таким образом в TestClass, но это вызвало бы проблемы для других классов, которым не нужно ссылаться на реализацию по умолчанию.