43

VB.netの問題の解決策をインターウェブで検索しているときに、特定のトピックに関する役立つ記事を見つけることがよくありますが、コードはC#です。これは大きな問題ではありませんが、手動でVBに変換するには時間がかかります。C#からVBへ、またはその逆のコードコンバーターを提供しているサイトもありますが、コード変換後にすべての欠陥を修正するには、最初に自分で行うのと同じくらい時間がかかります。

今まで私はhttp://labs.developerfusion.co.uk/convert/csharp-to-vb.aspxを使用しています

あなたはもっと良いことを知っていますか?

4

13 に答える 13

23

Telerikには、SharpDevelopをベースにした優れたコンバーターがあります。これは、何年にもわたって更新されていませんが(SharpDevelopに基づいているため)、長年にわたってかなりうまく機能しています。

私は最近、roslynベースのコンバーターにも出くわしました。どれだけうまく機能するのか、どれだけ維持されているのかはわかりませんが、オープンソースなので、いつでもフォークして必要に応じて更新できます。

于 2008-09-17T22:36:41.547 に答える
18

適切なコンバーターが見つからない場合は、いつでもc#コードをコンパイルし、Reflectorのdissasemblerを使用してVisualBasicコードを表示できます。一部の変数名が変更されます。

于 2008-09-17T22:35:33.437 に答える
13

私は現在、これらの2つを最も頻繁に使用しています。

http://converter.telerik.com/

http://www.carlosag.net/tools/codetranslator/

しかし、これらの他のものでもある程度の成功を収めています:

http://converter.atomproject.net/

http://www.dotnetspider.com/convert/Csharp-To-Vb.aspx

http://www.developerfusion.com/tools/convert/csharp-to-vb/

于 2012-11-15T13:51:19.287 に答える
12

SharpDevelopには、C#とVB.NETの間にトランスレータが組み込まれています。完全な考えではありませんが(たとえば、VB.NETのオプション値にはC#の同等の値がないため、コンバーターメソッドの署名を編集する必要があります)、IDE内ですべての操作を行うため、時間を節約できます。 Webページではありません(C#コードをコピーし、貼り付け、ボタンを押し、VB.NETコードをコピーし、IDEに貼り付けます:P)

于 2008-09-17T22:40:18.213 に答える
11

手で書き直すことができるように、他の言語を十分に学ぶことが最善の方法だと思います。特定の側面には非常に難しい違いがあり、コンバーターがうまく処理できるかどうかはわかりません。たとえば、次の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#はカスタムアクティビティフレームワークのサンプルからのものであり、リンクを失ってしまったのではないかと思います。しかし、それは(VBの観点から)いくつかの厄介な外観の継承を含んでいます。

于 2008-09-22T10:27:59.733 に答える
4

最後に確認したところ、SharpDevelopには1つあり、オープンソースでもあります。

于 2008-09-17T22:40:11.820 に答える
3

この 1 つのコンバーターを試すことができます。C# から VB および VB から C# の機能があります。

お役に立てれば。

于 2012-03-28T18:28:03.017 に答える
3

DLL または EXE を Redgate の (以前の Lutz Roeder の) .Net Reflectorにロードし、メソッドを選択してから、言語コンボから目的の言語を選択します。選択したメソッドのコードが選択した言語で表示されます。

これが役立つことを願っています。

于 2008-09-27T16:53:29.303 に答える
2

Carlos Aguilar Mares は、約 40 年間オンライン コンバーターであるCode Translatorを使用してきまし たが、Reflector の方が優れた回答であることに同意します。

于 2008-09-17T22:54:46.103 に答える
2

あなたの質問には答えませんが、私は似たような立場にあったと言います。

私が実際に .NET を使い始めたとき、C# のコード サンプルは扱いにくいことに気付きましたが、最初のプロジェクトを開始してから数週間後 (.NET フレームワークと VB.NET 自体に慣れてきた後)、それが適切であることに気付きました。 C# コードをリバース エンジニアリングしなければならないことは、興味深く、時には有益です。構文の観点だけでなく、アプローチの微妙な違いについても学びます。この点でオープンマインドであることは役に立ちます。

フレームワークについてますます学ぶにつれて、私はVB.NETに固執していますが、やがて「多言語」になることを意図してC#に浸ります。

于 2008-09-18T09:42:26.780 に答える
2

現在、CodeProject ( http://www.codeproject.com/KB/cs/Code_convert_add-in.aspx ) で見つけた VS2005 用のプラグインを使用しています。外部サービス ( http://www.carlosag.net/Tools/CodeTranslator/ ) を使用して翻訳を実行します。

オフラインのときは、変換ツール ( http://www.kamalpatel.net/ConvertCSharp2VB.aspx ) を使用することがあります。

于 2008-09-22T09:56:42.320 に答える
1

http://www.developerfusion.com/tools/convert/csharp-to-vb/ (新しい URL) にあるものは、.NET 3.5 構文をサポートするようになり (#develop の連中のおかげで)、結果が自動的にコピーされます。あなたのクリップボードに:)

于 2008-09-27T16:41:05.977 に答える