C# Cómo referencia predeterminado de la interfaz de la aplicación en implementador de la clase [duplicar]

0

Pregunta

Considere la siguiente interfaz, con una implementación predeterminada de TestMethod

public interface TestInterface
{
    public int TestMethod()
    {
        return 15;
    }
}

Llamar TestMethod en la siguiente clase hará un StackOverflowException:

public class TestClass : TestInterface
{
    public int TestMethod()
    {
        return 1 + (this as TestInterface).TestMethod();
    }
}

Ahora entiendo por qué es, pero ¿hay alguna manera de conseguir alrededor de él? Algo como base.TestMethod() para hacer referencia a uno de la clase que implementa las interfaces?

Sé que podría cambiar el nombre del método en TestInterface y de referencia en TestClass de esa manera, pero que podría causar problemas para las otras clases que no necesita hacer referencia a la implementación predeterminada.

c# default-implementation interface
2021-11-22 18:03:54
1
-1

usted necesidad de utilizar "public override" para hacer lo que están pidiendo.

2021-11-22 18:23:25

Podría por favor elaborar su respuesta con un hormigón fragmento de código y la descripción más.
Mario Petrovic

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................