2017-01-12 12 views
1

私はいくつかのC#コードをVB.Netに変換しようとしています。私はここでラムダ式を扱っていると思いますが、私はこれをどのように変換するのか分かりません。私はC#の初心者です。これは、無料のオンラインコンバータよりも少し先進的です。私は素晴らしいことが、私が本当に探していることは、誰かがこのコードが何しようとしているかを説明することであるだろうためC#ラムダ式をVB.netに変換する

VB.netにコードを変換する(FISHする男とすべてのことを教えて...)

ところで、HubProxyオブジェクトはSignalRハブです。

おかげで、 kayaking_jeff

答えて

1

私はSignalRと特に慣れていないんだけど、ここでは、文字列の中に出て

String.Format("{0}: {1}" + Environment.NewLine, name, message) 

代替変数の内側から作業し、起こっているように見えるものです。 nameは{0}の代わりになり、messageは{1}の代わりになります。これはnew String(name + ": " + message + Environment.NewLine)

RichTextBoxConsole.AppendText(String.Format(...)) 

と同じになり、リッチテキストボックス

(Action)(() => RichTextBoxConsole.AppendText(...)) 

にフォーマット文字列を追加パラメータを取らず、AppendText関数を呼び出すラムダ式を宣言します。

(name, message) => this.Invoke((Action)(...)) 

2つのパラメータ(namemessage)を取り、前ラムダ式とInvoke関数を呼び出す、第二ラムダ関数を宣言。私はInvokeが実際にラムダ式を実行すると仮定します。

HubProxy.On<string, string>("AddMessage", (name, message) => ...); 
再び

、SignalRに精通していないが、私の推測では、これは、AddMessageが発生するたびに、あなたのラムダ関数が実行されるように、AddMessageイベントに、以前のラムダ式を取り付ける名前とメッセージを引き起こしているということでしょうInvoke関数を使用してRichTextボックスに追加するイベント(イベントの適切なスレッドでUIエレメントが確実に変更されるようにするため)?

とにかく、これでラインを解析するのに役立ちます。しかし、それを変換してあなたを助けることはできません>。 <

+0

ありがとうございました!私は今日何かを学んだ! –

0

VBと同等である(私は何かが間違って、私に知らせてくださいと私は削除するか、問題文を調整すると発表している場合):

HubProxy.On(Of String, String)("AddMessage", Function(name, message) _ 
    Me.Invoke(CType(Sub() _ 
    RichTextBoxConsole.AppendText(String.Format("{0}: {1}" & Environment.NewLine, name, message)), Action))) 

の説明を参照してくださいタイラーの答え論理。

+0

ありがとうございました!私は今日何かを学んだ! –