Ich habe nicht viel Hintergrundwissen über COM oder Co-Klassen, daher verstehe ich nicht ganz, warum ich den Operator new
mit einer Schnittstelle verwenden kann. Aus einer Sprache / Framework-Agnostic-Ansicht, ist es verwirrend, warum das kompiliert und korrekt ausgeführt wird:
Bei der Überprüfung von Application
in Visual Studio 2010 wird Folgendes angezeigt:
Was passiert hinter den Kulissen?
Dies ist nur für COM-Schnittstellen möglich, glaube ich. Marc Gravell hat eine Erklärung hier .
Die kurze Antwort ist, dass eine COM-Schnittstelle mit einer "Standard" -Implementierungsklasse gepaart werden kann, so dass Sie beim Erstellen einer Instanz dieser Standardimplementierungsklasse die Instanz instanziieren. Im Fall der Application
-Schnittstelle in Ihrem Beispiel scheint dies ApplicationClass
zu sein.