C# Jak odkazovat na výchozí implementace rozhraní v implementátor třídy [duplicitní]

0

Otázka

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.

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

budete muset použít "public override" dělat to, co žádáte.

2021-11-22 18:23:25

Mohl byste, prosím, rozvést svou odpověď s konkrétní fragment kódu a další popis.
Mario Petrovic

V jiných jazycích

Tato stránka je v jiných jazycích

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