C# Ako referencia predvolené rozhranie implementácia v realizátor triedy [duplicitné]

0

Otázka

Zvážte nasledujúce rozhrania, s predvoleným vykonávanie TestMethod

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

Volá TestMethod v nasledujúcich triedy spôsobí StackOverflowException:

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

Teraz chápem, prečo to je, ale je tam žiadny spôsob, ako dostať okolo neho? Niečo ako base.TestMethod() pre porovnanie jedna z tried implementovaných rozhraní?

Viem, že by som mohol premenovať metódy v TestInterface a odkaz je v TestClass, že spôsob, ako, ale, že by spôsobiť problémy pre ostatné triedy, ktoré nie je potrebné odkaz predvolené implementácie.

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

musíte použiť "public override" robiť to, čo si žiadajú.

2021-11-22 18:23:25

Mohli by ste prosím vypracovať odpoveď s konkrétnym útržok kódu a podrobnejší opis.
Mario Petrovic

V iných jazykoch

Táto stránka je v iných jazykoch

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