Ich versuche, mich um den Kopf zu kümmern, wenn die frühe/späte Bindung in C# auftritt.Frühe und späte Bindung
Nicht-virtuelle Methoden sind immer früh gebunden. Virtuelle Methoden sind immer spät gebunden: Der Compiler fügt zusätzlichen Code ein, um die tatsächliche Methode zu lösen, an die zur Ausführungszeit eine Bindung hergestellt wird, und überprüft die Typsicherheit. Daher verwendet der Subtyppolymorphismus die späte Bindung.
Aufrufmethoden mit Reflektion ist ein Beispiel für späte Bindung. Wir schreiben den Code, um dies zu erreichen, im Gegensatz zum Compiler. (Zum Beispiel COM-Komponenten aufrufen.)
VB.NET unterstützt implizite späte Bindung, wenn Option Strict deaktiviert ist. Ein Objekt ist spät gebunden, wenn es einer Variablen zugewiesen wird, die als Objekt definiert ist. Der VB-Compiler fügt Code ein, um zur Ausführungszeit an die richtige Methode zu binden und ungültige Aufrufe abzufangen. C# unterstützt diese Funktion nicht.
Gehe ich in die richtige Richtung?
Wie wäre es, Delegaten aufzurufen und eine Methode über eine Schnittstellenreferenz aufzurufen? Ist das früh oder spät verbindlich?
Ich denke, Sie wollten sagen "Die VB-Sprache selbst bindet nicht spät ..." –
Eigentlich benutze ich VB nicht, also weiß ich nicht viel darüber. Ich meinte C#, aber es sieht so aus, als würde ich mich nur wiederholen. Ich könnte mir aber vorstellen, dass du Recht hast, also repariere ich es! –
Mit dem dynamischen Schlüsselwort wird die späte Bindung in C# 4 verfügbar sein. – configurator