C # Implementer sınıfında varsayılan arabirim uygulamasına nasıl başvurulur [duplicate]

0

Soru

Varsayılan bir uygulama ile aşağıdaki arabirimi göz önünde bulundurun TestMethod

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

Arama TestMethod aşağıdaki sınıfta bir StackOverflowException neden olur:

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

Şimdi bunun neden olduğunu anlıyorum ama bunun üstesinden gelmenin bir yolu var mı? Aşağı yukarı base.TestMethod() sınıfın uygulanan arabirimlerinden birine başvurmak için mi?

Yöntemi Testınterface'de yeniden adlandırabileceğimi ve Testclass'ta bu şekilde referans verebileceğimi biliyorum, ancak bu, varsayılan uygulamaya başvurması gerekmeyen diğer sınıflar için sorunlara neden olur.

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

sorduğunuz şeyi yapmak için "genel geçersiz kılma" yı kullanmanız gerekir.

2021-11-22 18:23:25

Lütfen cevabınızı somut bir kod parçacığı ve daha fazla açıklama ile detaylandırabilir misiniz?
Mario Petrovic

Diğer dillerde

Bu sayfa diğer dillerde

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