2016-06-28 20 views
0

In Java Aufruf, dass Klasse A unter der Annahme, eine Schnittstelle/abstrakte Klasse ist, kann ich folgendes:eine Schnittstelle implementieren, während ein Verfahren (Inline)

callMethod(new A(){ 

    public void myFunc(){ 
    System.out.println("test"); 
    } 
}); 

Wie kann ich die gleiche Abkürzung Effekt in C# erreichen ohne eine Klasse separat deklarieren zu müssen.

Dank

+1

In C# können Sie keine Schnittstelle mit einer anonymen Klasse implementieren. Aber in C# gibt es viel weniger Grund dafür. Es gibt kein "FunctionalInterface". Stattdessen haben wir Delegaten, und wir verwenden Delegiertenobjekte anstelle von Implementierungen eines 'FunctionalInterface'. Stattdessen wird die Signatur von CallMethod (Action action) angezeigt und Sie übergeben '() => Console.WriteLine (" test ")'. – Aron

+1

Voting zu öffnen, da diese Frage tatsächlich wie eine Frage auf 'FunctionalInterface' in JAVA und' Delegate's in C# aussieht. – Aron

+0

Danke. Das sieht interessant aus. Ich wusste nicht einmal, dass das existierte, da ich C# lerne – Snake

Antwort

0

Sie können nicht.

In C# können Sie keine Schnittstellen für anonyme Typen implementieren.

Verwandte Themen