In C# Ich rufe eine Funktion auf einer Interop-Klasse (Verbindung, in VB6 geschrieben), die selbst ein einfaches Objekt zurückgibt (-System). Dann gibt es eine Funktion für dieses Objekt (InitialiseData), die ich auch anrufe (obwohl der Compiler es nicht bemerkt).Aufrufen von Methoden auf Interop-Objekte, VB vs. C#
var isInitialised = Connection.System.InitialiseData(path);
Das Problem ist, weil das Systemobjekt ist ein bloßes Objekt zurückkehrt, erhalte ich den Compiler-Fehler „kann Symbol nicht lösen“. Ich kann sehen, warum, aber das Gleiche funktioniert in VB.NET fein:
Dim isInitialised As Boolean = Connection.System.InitialiseData(path)
Vermutlich VB.NET etwas im Hintergrund tut, die eine Art implizite späte Bindung ermöglicht, während C# nicht der Fall ist? Gibt es eine Möglichkeit, C# ähnlich unwissend zu kompilieren?
In der Tat in diesem Fall scheine ich um es in der Lage sein zu arbeiten, indem das Objekt auf die explizite Interop Typ Gießen zuerst:
var system = (QLO.System)Connection.System;
var isInitialised = system.InitialiseData(path);
Aber ich bin immer noch daran interessiert, Antworten für Fälle, in denen ich gewonnen 't in der Lage zu einem Typ zu werfen, aber noch Funktionen auf es aufrufen wollen. Verzeih mir, wenn das eine dumme Frage ist, ich beginne gerade erst, von VB.NET zu C# zu wechseln ... danke!