VB.netの問題の解決策をインターウェブで検索しているときに、特定のトピックに関する役立つ記事をよく見つけますが、コードはC#です。それは大きな問題ではありませんが、手動でVBに変換するのに時間がかかります。C#からVBに、またはその逆にコードコンバーターを提供するサイトがあります。 、しかし、コード変換後にすべての欠陥を修正することは、そもそも自分でそれをするのと同じくらい時間がかかります。
今まで私は使用しています http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx
もっと良いことを知っていますか?
優れたコンバーターが見つからない場合は、常にc#コードをコンパイルし、 Reflector でdissasemblerを使用してVisual Basicコードを確認できます。一部の変数名は変更されます。
Telerikには 優れたコンバーター があります。これは、長年更新されていませんが(SharpDevelopに基づいているため)、長年にわたって非常にうまく機能しているSharpDevelopに基づいています。
私は最近 roslynベースのコンバーターも に出会いました。どれだけうまく機能するか、どれだけ保守されているかはわかりませんが、オープンソースなので、いつでもフォークして必要に応じて更新できます。
SharpDevelop には、C#とVB.NETの間にトランスレーターが組み込まれています。完全な考えではありません(たとえば、VB.NETのオプション値にはC#に相当するものがないため、コンバーターメソッドのシグネチャを編集する必要があります)が、すべての操作を= IDEおよびWebページではありません(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の観点から)厄介な継承が含まれています。
Language Convert という名前の無料のVisual Studio 2012プラグインを使用しています
2010/2012で完全に動作しますが、残念ながらVS 2013ではまだ動作していません。
変換は100%正確ではありませんが、初めて起動するのは少し難しいので、下の画像の前に確認してください。
最後に確認したのは、 SharpDevelop に1つあり、それもオープンソースです。
DLLまたはEXEをRedgate(以前のLutz Roeder)) 。Net Reflector にロードして、メソッドを選択し、言語コンボから目的の言語を選択できます。選択したメソッドは、選択した言語で表示されます。
これがお役に立てば幸いです。
これを試すことができます converter 。 C#には、VBおよびVB to C#。
お役に立てれば。
あなたの質問には答えませんが、私は同じような立場にあったと言います。
.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 )。
Carlos Aguilar Maresには約40人のオンラインコンバーターがあります- Code Translator、しかし、Reflectorがより良い答えであることに同意します。
http://www.developerfusion.com/tools/convert/csharp-to-vb/ (新しいURL)の1つは、.NET 3.5構文をサポートするようになりました(もう一度#developのおかげで) 、結果をクリップボードに自動的にコピーします:)