Zvažte následující rozhraní s výchozí implementace TestMethod
public interface TestInterface
{
public int TestMethod()
{
return 15;
}
}
Volání TestMethod
v následující třídy způsobí StackOverflowException:
public class TestClass : TestInterface
{
public int TestMethod()
{
return 1 + (this as TestInterface).TestMethod();
}
}
Teď už chápu, proč to je, ale je tam nějaký způsob, jak se dostat kolem? Něco jako base.TestMethod()
pro odkazování jedné třídy je realizován rozhraní?
Vím, že jsem mohl přejmenovat metody v TestInterface a odkaz je v TestClass, že způsob, ale to by mohlo způsobit problémy pro ostatní třídy, které nepotřebují referenční výchozí implementace.