C# から VB.net への最良のコンバータは何ですか?[閉まっている]
質問
VB.net の問題の解決策を求めてインターウェブを検索すると、特定のトピックに関する役立つ記事がよく見つかりますが、コードは C# です。それは大きな問題ではありませんが、手動で VB に変換するには時間がかかりました。C# から VB へ、またはその逆のコード コンバータを提供するサイトがいくつかありますが、コード変換後にすべての欠陥を修正するには、最初に自分でコードを変換するのとほぼ同じくらい時間がかかります。
今まで私が使っているのは http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx
もっと良いものを知っていますか?
解決
適切なコンバーターが見つからない場合は、いつでも C# コードをコンパイルし、逆アセンブラーを使用できます。 リフレクター Visual Basic コードを表示します。変数名の一部が変更されます。
他のヒント
テレリクは 良いコンバーター これは、長年にわたり非常にうまく機能してきた SharpDevelop をベースにしていますが、(SharpDevelop をベースにしているため)何年も更新されていません。
最近出会ったのですが、 roslynベースのコンバータも. 。それがどの程度うまく機能するか、どの程度よく維持されているかはわかりませんが、オープンソースであるため、必要に応じていつでもフォークして更新できます。
シャープ開発 C# と VB.NET 間のトランスレーターが組み込まれています。完璧な思考ではありません(例:VB.NET のオプション値には C# に相当する値がないため、コンバータ メソッドのシグネチャを編集する必要があります)、ただし、すべての操作を Web ページではなく IDE 内で行うため、時間を節約できます (コピー) C# コード、貼り付け、ボタンを押し、VB.NET コードをコピー、IDE に貼り付けます :P )
最善の方法は、他の言語を十分に学習して、手動で書き直せるようにすることだと思います。特定の側面では非常に難しい違いがいくつかあり、コンバーターがうまく処理できるかどうかはわかりません。たとえば、次の C# から VB への私の翻訳を比較してください。
public class FileSystemEventSubscription : EventSubscription
{
private FileSystemWatcher fileSystemWatcher;
public FileSystemEventSubscription(IComparable queueName,
Guid workflowInstanceId, FileSystemWatcher fileSystemWatcher) : base(queueName, workflowInstanceId)
{
this.fileSystemWatcher = fileSystemWatcher;
}
になる
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
C# は Custom Activity Framework サンプルからのものですが、リンクを失ってしまったようです。ただし、(VB の観点からすると) 見苦しい継承がいくつか含まれています。
現在、私が最も頻繁に使用しているのは次の 2 つです。
http://www.carlosag.net/tools/codetranslator/
しかし、次のような他の方法でもある程度の成功を収めています。
http://converter.atomproject.net/
私は、という名前の無料の Visual Studio 2012 プラグインを使用しています。 言語変換
2010/2012 では完全に動作しますが、残念ながら VS 2013 ではまだ動作しません。
変換は 100% 正確ではありませんが、間違いなく非常に役立ちます。初めて起動する場合は少し注意が必要です。以下の画像の前に確認してください。
最後に確認したところ、 シャープ開発 があり、それもオープンソースです。
DLL または EXE を Redgate (旧 Lutz Roeder) にロードできます。 .Netリフレクター, 、方法を選択し、言語コンボから目的の言語を選択します。選択したメソッドのコードが選択した言語で表示されます。
これがお役に立てば幸いです。
これを試すことができます コンバータ. 。C# から VB へ、および VB から C# への機能があります。
お役に立てれば。
カルロス・アギラール・マレスは、約 40 年にわたってオンライン コンバーターを永久に使用してきました。 コードトランスレータ しかし、Reflector がより良い答えであることに私は同意します。
あなたの質問には答えませんが、私も同様の立場にあったと言いたいと思います。
.NET を実際に使い始めたときは、C# のコード サンプルが扱いにくいことに気づきましたが、最初のプロジェクトを開始して数週間後 (.NET フレームワークと VB.NET 自体に慣れてきた後)、それが厄介であることがわかりました。 C# コードをリバース エンジニアリングする必要があることは興味深いことであり、場合によっては有益です。構文の点だけでなく、アプローチの微妙な違いについても学ぶことができます。この点に関して広い心を持っておくと役に立ちます。
私はフレームワークについて学習するにつれて VB.NET に固執していますが、近いうちに「多言語」になることを目指して C# に手を付けるつもりです。
現在、CodeProject で見つけた VS2005 用のプラグインを使用しています (http://www.codeproject.com/KB/cs/Code_convert_add-in.aspx);外部サービスを使用します (http://www.carlosag.net/Tools/CodeTranslator/) 翻訳を実行します。
時々、オフラインのときにコンバーター ツールを使用します (http://www.kamalpatel.net/ConvertCSharp2VB.aspx).
でのもの http://www.developerfusion.com/tools/convert/csharp-to-vb/ (新しい URL) は .NET 3.5 構文をサポートするようになり (#develop の皆さんに改めて感謝します)、結果が自動的にクリップボードにコピーされます :)