Lors de la recherche sur Internet d'une solution à mes problèmes VB.net, je trouve souvent des articles utiles sur un sujet spécifique, mais le code est C #. Ce n'est pas un gros problème mais il a fallu du temps pour le convertir en VB manuellement. Il existe des sites qui proposent des convertisseurs de code de C # en VB et vice versa) , mais corriger tous les défauts après la conversion de code prend presque autant de temps que de le faire moi-même en premier lieu.
Jusqu'à présent, j'utilise http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx
Savez-vous quelque chose de mieux?
Si vous ne trouvez pas un bon convertisseur, vous pouvez toujours compiler le code c # et utiliser le dissasembleur dans Reflector pour voir le code Visual Basic. Certains noms de variables vont changer.
Telerik a n bon convertisseur qui est basé sur SharpDevelop qui a plutôt bien fonctionné au fil des ans, bien qu'il n'ait pas été mis à jour depuis des années (car il est basé sur SharpDevelop).
J'ai récemment rencontré un convertisseur basé sur roslyn également . Je ne sais pas comment cela fonctionne ou comment il est bien entretenu, mais comme il est open source, vous pouvez toujours le bifurquer et le mettre à jour au besoin.
SharpDevelop a un traducteur intégré entre C # et VB.NET. N'est pas une pensée parfaite (par exemple, les valeurs facultatives dans VB.NET n'ont pas d'équivalent en C #, donc la signature de la méthode du convertisseur doit être modifiée), mais vous pouvez gagner du temps, car vous effectuez toutes les opérations dans un = IDE et non une page Web (copier le code C #, coller, appuyer sur le bouton, copier le code VB.NET, coller sur IDE: P)
J'utilise actuellement ces deux plus souvent:
http://www.carlosag.net/tools/codetranslator/
Mais ont également eu un certain succès avec ces autres:
http://converter.atomproject.net/
Je pense que la meilleure chose à faire est d'apprendre suffisamment de l'autre langue pour que vous puissiez réécrire à la main, il y a des différences assez difficiles sur certains aspects que je ne suis pas sûr qu'un convertisseur gérerait très bien. Par exemple, comparez ma traduction de C # à VB des éléments suivants:
public class FileSystemEventSubscription : EventSubscription
{
private FileSystemWatcher fileSystemWatcher;
public FileSystemEventSubscription(IComparable queueName,
Guid workflowInstanceId, FileSystemWatcher fileSystemWatcher) : base(queueName, workflowInstanceId)
{
this.fileSystemWatcher = fileSystemWatcher;
}
devient
Public Class FileSystemEventSubscription
Inherits EventSubscription
Private myFileSystemWatcher As FileSystemWatcher
Public Sub New(ByVal QueueName As IComparable, ByVal WorkflowInstanceID As Guid, ByVal Watcher As FileSystemWatcher)
MyBase.New(QueueName, WorkflowInstanceID)
Me.myFileSystemWatcher = Watcher
End Sub
Le C # provient de l'exemple Custom Activity Framework, et je crains d'avoir perdu le lien vers celui-ci. Mais il contient un héritage d'aspect désagréable (d'un point de vue VB)).
J'utilise un plug-in Visual Studio 2012 gratuit nommé Language Convert
Cela fonctionne parfaitement sur 2010/2012, malheureusement ne fonctionne pas encore à VS 2013.
La conversion n'est pas précise à 100%, mais c'est vraiment très utile, pour lancer pour la première fois c'est un peu délicat, vérifiez avant l'image ci-dessous:
La dernière fois que j'ai vérifié, SharpDevelop en a un et il est également open source.
Vous pouvez charger votre DLL ou EXE dans Redgate (anciennement Lutz Roeder) . Net Reflector , sélectionnez votre méthode puis la langue souhaitée dans le combo de langues. Le code de la méthode sélectionnée sera affichée dans la langue sélectionnée.
J'espère que ça aide.
Vous pouvez essayer celui-ci convertisseur . Il existe des fonctionnalités pour C # à VB et VB à C #.
J'espère que cela t'aides.
Sans répondre à votre question, je dirai que j'ai été dans une position similaire.
J'ai réalisé que les échantillons de code en C # étaient maladroits lorsque je commençais vraiment dans .NET, mais quelques semaines après mon premier projet (après m'être familiarisé avec le framework .NET et VB.NET lui-même), j'ai trouvé que c'était intéressant et parfois bénéfique de devoir faire du reverse-engineering du code C #. Non seulement en termes de syntaxe, mais aussi en apprenant les différences subtiles d'approche - il est utile d'être ouvert d'esprit à cet égard.
Je m'en tiens à VB.NET au fur et à mesure que j'apprends de plus en plus sur le framework, mais d'ici peu je vais plonger dans C # avec l'intention de devenir 'multilingue'.
Actuellement, j'utilise un plugin pour VS2005 que j'ai trouvé sur CodeProject ( http://www.codeproject.com/KB/cs/Code_convert_add-in.aspx ); il utilise un service externe ( http://www.carlosag.net/Tools/CodeTranslator/ ) pour effectuer la traduction.
Parfois, lorsque je suis hors ligne, j'utilise un outil de conversion ( http://www.kamalpatel.net/ConvertCSharp2VB.aspx ).
Carlos Aguilar Mares a eu un convertisseur en ligne pour environ 40 forevers - Traducteur de code mais je conviens que Reflector est la meilleure réponse.
Celui de http://www.developerfusion.com/tools/convert/csharp-to-vb/ (nouvelle URL) prend désormais en charge la syntaxe .NET 3.5 (merci encore une fois aux gars de #develop) , et copiera automatiquement les résultats dans votre presse-papiers :)