J'ai utilisé l'assistant VB6 to .NET d'Artinsoft pour convertir une application VB6 en C# et j'obtiens un avertissement de mise à niveau à tout endroit où Err.Number était précédemment utilisé;Err.Number (VB6 contre C#)
// UPGRADE_WARNING: (2081) Le numéro d'erreur a un nouveau comportement.
Le code converti fait référence à;
Microsoft.VisualBasic.Information.Err().Number
Je n'ai pas eu de chance de découvrir quelle est la différence. Est-ce que quelqu'un sait ce que cela pourrait être, ou est-il prudent d'ignorer cet avertissement?
MISE À JOUR
Pour ceux qui tombe par hasard sur cette question à l'avenir - un mot d'avertissement; Il n'est PAS sûr de continuer à utiliser Err.Number dans une application C# .NET. La propriété est toujours disponible, mais elle n'est pas remplie après les erreurs comme prévu. Le seul cas dans lequel il est rempli comme prévu est si l'erreur provient d'un composant COM.
Erreurs normales e.g. L'accès à la base de données, les opérations d'E/S, etc. ne donneront aucune valeur à Err(). Nombre, et son utilisation doit malheureusement être refactorisée. Assez curieusement, dans VB .NET, il fonctionne toujours comme prévu, c'est peut-être quelque chose à garder à l'esprit lorsque vous prenez une décision sur la langue cible pour la conversion.
OT: êtes-vous satisfait du travail que fait le VBUC? – kjack
@kjack: Cela économise beaucoup de travail au cours du processus de conversion, mais il y a un certain nombre de "bizarreries" dans ses conversions de patterns qui demandent un peu de temps pour s'y habituer. Dans l'ensemble cependant, je dirais que cela vaut probablement la peine d'utiliser, mais ne vous attendez pas à des miracles. –
Merci pour cela, il est rare de voir des commentaires sur ces produits pour une raison quelconque. – kjack