Considérez les points suivants de l'interface, avec une valeur par défaut de mise en œuvre de TestMethod
public interface TestInterface
{
public int TestMethod()
{
return 15;
}
}
L'appel TestMethod
dans la classe suivante sera la cause d'une StackOverflowException:
public class TestClass : TestInterface
{
public int TestMethod()
{
return 1 + (this as TestInterface).TestMethod();
}
}
Maintenant, je comprends pourquoi il en est, mais est-il un moyen de le contourner? Quelque chose comme base.TestMethod()
pour le référencement de la classe de mise en œuvre des interfaces?
Je sais que je pourrais renommer la méthode dans TestInterface et de référence dans TestClass de cette façon, mais cela pourrait provoquer des problèmes pour les autres classes qui n'ont pas besoin de faire référence à la valeur par défaut de mise en œuvre.