Ich habe Artinsoft VB6 zu .NET Assistenten verwendet, um eine VB6-Anwendung in C# zu konvertieren, und ich bekomme eine Upgrade-Warnung an jedem Ort, wo früher Err.Number verwendet wurde;Err.Number (VB6 vs. C#)
// UPGRADE_WARNING: (2081) Err.Nummer hat ein neues Verhalten.
Der konvertierte Code bezieht sich auf;
Microsoft.VisualBasic.Information.Err().Number
Ich hatte kein Glück, herauszufinden, was der Unterschied ist. Weiß jemand, was es sein könnte, oder ist es sicher, diese Warnung zu ignorieren?
UPDATE
Für alle, die über diese Frage in Zukunft stolpert - ein Wort der Warnung; Es ist NICHT sicher, Err.Number in einer C# .NET-Anwendung weiter zu verwenden. Die Eigenschaft ist weiterhin verfügbar, wird jedoch nicht wie erwartet nach Fehlern gefüllt. Der einzige Fall, in dem es wie erwartet ausgefüllt wird, ist, wenn der Fehler von einer COM-Komponente kommt.
Normale Fehler z.B. DB-Zugriff, IO-Operationen usw. geben der Err() .Nummer keinen Wert, und so muss ihre Verwendung leider refaktoriert werden.
Seltsamerweise funktioniert es in VB .NET immer noch wie erwartet, also sollte dies bei der Entscheidung über die Zielsprache für die Konvertierung berücksichtigt werden.
OT: Sind Sie mit dem Job zufrieden, den die VBUC macht? – kjack
@kjack: Es spart definitiv eine Menge Arbeit während des Konvertierungsprozesses, aber es gibt eine Reihe von "Macken" in seinen Musterkonvertierungen, die gewöhnungsbedürftig sind. Im Großen und Ganzen würde ich sagen, dass es sich lohnt, es zu benutzen, aber erwarte keine Wunder davon. –
Danke dafür, es ist selten, Bewertungen dieser Produkte aus irgendeinem Grund zu sehen. – kjack