web-dev-qa-db-fra.com

Quel est le meilleur convertisseur C # vers VB.net?

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?

42
Florian

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.

18
Hallgrim

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.

22
Darren Kopp

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)

12
Ricardo Amores
11
StarLordBlair

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)).

11
robingbrown

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: enter image description here

5

La dernière fois que j'ai vérifié, SharpDevelop en a un et il est également open source.

4
GEOCHET

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.

3
Germstorm

Vous pouvez essayer celui-ci convertisseur . Il existe des fonctionnalités pour C # à VB et VB à C #.

J'espère que cela t'aides.

3
Ivan Baev

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'.

2
CJM

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 ).

2
Davide

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.

2
MotoWilliams

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 :)

1
James Crowley