Question

Lorsque je cherche sur l’interweb une solution à mes problèmes sur VB.net, je trouve souvent des articles utiles sur un sujet spécifique, mais le code est en C #. Ce n’est pas un gros problème, mais la conversion manuelle en VB a pris du temps. Certains sites proposent des convertisseurs de code de C # à VB et vice-versa, mais corriger toutes les failles après la conversion de code prend presque autant de temps que de le faire par moi-même.

Jusqu'à présent, j'utilise http://labs.developerfusion.co .uk / convert / csharp-to-vb.aspx

Savez-vous quelque chose de mieux?

Était-ce utile?

La solution

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.

Autres conseils

Telerik a un bon convertisseur basé sur SharpDevelop qui a bien fonctionné au fil des ans. il n'a pas été mis à jour depuis des années (car il est basé sur SharpDevelop).

J'ai récemment rencontré un roslyn convertisseur basé aussi bien . Je ne sais pas s'il fonctionne bien ou s'il est bien entretenu, mais comme il est open source, vous pouvez toujours le modifier et le mettre à jour si nécessaire.

SharpDevelop dispose d'un traducteur intégré entre C # et VB.NET. N’est pas une pensée parfaite (par exemple, les valeurs optionnelles de VB.NET n’ont pas d’équivalent en C #, la signature de la méthode du convertisseur doit donc ê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, cliquer sur le bouton, copier le code VB.NET, coller sur IDE: P)

Je pense que la meilleure chose à faire est d’en apprendre suffisamment sur l’autre langue pour pouvoir la réécrire à la main. Il existe des différences assez difficiles en ce qui concerne certains aspects que je ne suis pas sûr qu’un convertisseur convertirait très bien. Par exemple, comparez ma traduction de C # en VB de ce qui suit:

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 de structure d'activité personnalisée et j'ai bien peur d'avoir perdu le lien. Mais il contient un héritage très désagréable (du point de vue de VB).

J'utilise un plug-in gratuit pour Visual Studio 2012 nommé Conversion de langue.

Cela fonctionne parfaitement en 2010/2012, malheureusement, il ne fonctionne pas encore pour 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:  entrer la description de l'image ici

La dernière fois que j'ai vérifié, SharpDevelop en possède un et est également à code ouvert.

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

J'espère que cela vous aidera.

Carlos Aguilar Mares a eu un convertisseur en ligne pour environ 40 serveurs - Traducteur de code mais je conviens que Reflector est la meilleure réponse.

Sans répondre à votre question, je dirai que je suis dans une position similaire.

Je me suis rendu compte que les exemples de code en C # étaient gênants lorsque je débutais vraiment dans .NET, mais quelques semaines après le début de mon premier projet (après être devenu plus familier avec le framework .NET et VB.NET lui-même), j'ai découvert Il était intéressant et parfois bénéfique de devoir procéder à une ingénierie inverse du code C #. Pas 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 reste avec VB.NET alors que j'en apprends de plus en plus sur le cadre, mais je vais bientôt plonger dans C # dans l'intention de devenir "multilingue".

J'utilise actuellement un plug-in pour VS2005 que j'ai trouvé dans CodeProject ( http: //www.codeproject.com/KB/cs/Code_convert_add-in.aspx ); il utilise un service externe ( http://www.carlosag.net/Tools/CodeTranslator/) effectuer la traduction.

Parfois, lorsque je suis hors ligne, j'utilise un outil de conversion ( http: //www.kamalpatel .net / ConvertCSharp2VB.aspx ).

Celui de http://www.developerfusion.com/tools / convert / csharp-to-vb / (nouvelle URL) prend désormais en charge la syntaxe .NET 3.5 (une fois encore, grâce aux #develop), et copie automatiquement les résultats dans votre presse-papiers:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top