Domanda

Durante la ricerca su Internet di una soluzione ai miei problemi VB.net trovo spesso articoli utili su un argomento specifico, ma il codice è C#.Questo non è un grosso problema, ma convertirlo manualmente in VB richiede un po' di tempo.Ci sono alcuni siti che offrono convertitori di codice da C# a VB e viceversa, ma correggere tutti i difetti dopo la conversione del codice richiede tanto tempo quanto farlo da solo.

Fino ad ora sto usando http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx

Conosci qualcosa di meglio?

È stato utile?

Soluzione

Se non riesci a trovare un buon convertitore, puoi sempre compilare il codice C# e utilizzare il dissambler Riflettore per vedere il codice Visual Basic.Alcuni nomi delle variabili cambieranno.

Altri suggerimenti

Telerik sì un buon convertitore che è basato su SharpDevelop che ha funzionato abbastanza bene nel corso degli anni, anche se non è stato aggiornato da anni (poiché è basato su SharpDevelop).

Recentemente mi sono imbattuto in a anche un convertitore basato su Roslyn.Non so quanto bene funzioni o quanto sia ben mantenuto, ma poiché è open source puoi sempre eseguirne il fork e aggiornarlo secondo necessità.

SharpDevelop ha un traduttore integrato tra C# e VB.NET.Il pensiero non è perfetto (ad es.(i valori opzionali in VB.NET non hanno un equivalente in C#, quindi la firma del metodo di conversione deve essere modificata), ma puoi risparmiare un po' di tempo, poiché stai effettuando tutte le operazioni all'interno di un IDE e non in una pagina web (copia Codice C#, incolla, premi il pulsante, copia il codice VB.NET, incolla sull'IDE: P)

Penso che la cosa migliore da fare sia imparare abbastanza dell'altra lingua in modo da poterla riscrivere a mano, ci sono alcune differenze piuttosto difficili in alcuni aspetti che non sono sicuro che un convertitore potrebbe gestire molto bene.Ad esempio, confronta la mia traduzione da C# a VB di quanto segue:

public class FileSystemEventSubscription : EventSubscription
{
    private FileSystemWatcher fileSystemWatcher;

    public FileSystemEventSubscription(IComparable queueName, 
        Guid workflowInstanceId, FileSystemWatcher fileSystemWatcher) : base(queueName, workflowInstanceId)
    {
        this.fileSystemWatcher = fileSystemWatcher;
    }

diventa

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

Il C# proviene dall'esempio Custom Activity Framework e temo di aver perso il collegamento ad esso.Ma contiene qualche eredità dall'aspetto sgradevole (dal punto di vista VB).

Sto utilizzando un plug-in gratuito di Visual Studio 2012 denominato Conversione lingua

Funziona perfettamente nel 2010/2012, sfortunatamente non funziona ancora nel VS 2013.

La conversione non è precisa al 100%, ma è sicuramente molto utile, avviarla per la prima volta è un po' complicato, controllate prima l'immagine qui sotto: enter image description here

L'ultima volta che ho controllato, SharpDevelop ne ha uno ed è anch'esso open source.

Puoi caricare la tua DLL o EXE in Redgate (precedentemente Lutz Roeder) .Net Riflettore, seleziona il tuo metodo e poi la lingua desiderata dalla combinazione di lingue.Il codice del metodo selezionato verrà visualizzato nella lingua selezionata.

Spero che aiuti.

Puoi provare questo convertitore.Sono disponibili funzionalità per C# in VB e VB in C#.

Spero che questo ti aiuti.

Carlos Aguilar Mares ha un convertitore online da circa 40 secoli - Traduttore di codici ma sono d'accordo sul fatto che Reflector sia la risposta migliore.

Pur non rispondendo alla tua domanda, dirò che mi sono trovato in una posizione simile.

Mi sono reso conto che gli esempi di codice in C# erano scomodi quando stavo iniziando davvero con .NET, ma dopo alcune settimane dall'inizio del mio primo progetto (dopo aver acquisito maggiore familiarità con il framework .NET e VB.NET stesso), ho scoperto che era interessante e talvolta utile dover decodificare il codice C#.Non solo in termini di sintassi, ma anche di apprendimento delle sottili differenze di approccio: è utile avere una mentalità aperta a questo riguardo.

Mi attengo a VB.NET man mano che imparo sempre di più sul framework, ma tra non molto mi immergerò in C# con l'intenzione di diventare "multilingue".

Attualmente utilizzo un plugin per VS2005 che ho trovato su CodeProject (http://www.codeproject.com/KB/cs/Code_convert_add-in.aspx);utilizza un servizio esterno (http://www.carlosag.net/Tools/CodeTranslator/) per eseguire la traduzione.

Occasionalmente, quando sono offline, utilizzo uno strumento di conversione (http://www.kamalpatel.net/ConvertCSharp2VB.aspx).

Quello a http://www.developerfusion.com/tools/convert/csharp-to-vb/ (nuovo URL) ora supporta la sintassi .NET 3.5 (grazie ancora una volta ai ragazzi di #develop) e copierà automaticamente i risultati negli appunti :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top