C# Como padrão de referência implementação de interface na classe implementador [duplicado]

0

Pergunta

Considere a seguinte interface, com uma implementação padrão de TestMethod

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

Chamar TestMethod na classe a seguir fará com que uma StackOverflowException:

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

Agora eu entendo por que isso é, mas existe alguma forma de contornar isso? Algo como base.TestMethod() para fazer referência a uma classe implementada interfaces?

Eu sei que eu poderia mudar o nome do método em TestInterface e fazer referência a ele em TestClass de que forma, mas que poderia causar problemas para outras classes que não precisam de referência o padrão de implementação.

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

você precisa usar o "public override" para fazer o que você está pedindo.

2021-11-22 18:23:25

Por favor, você poderia elaborar a sua resposta com um concreto trecho de código e uma descrição mais detalhada.
Mario Petrovic

Em outros idiomas

Esta página está em outros idiomas

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