2011-01-27 16 views
0

ちょっと私はすべてのオンラインコードコンバータを試しましたが、どれもこれで動作しません。誰かがこれをvb.netに変換する方法を私に説明してもらえますか?このコードスニペットをC#からVBに変換する際に助けが必要

yahoo.OnBuddyAddYouRequest += delegate(object sender, string buddy, string requestMessage, ref bool bAccept) 
{ 
    object[] inVar = { sender, buddy, requestMessage,bAccept }; 
    this.Invoke(new OnBuddyAddYouRequestYahooEventHandler(OnBuddyAddYouRequest), inVar); 
    bAccept = (bool)inVar[3]; 
}; 
+0

あなたはおそらくそれが変換必要とする理由私が知っている間、私は私がすべてのこの努力は、両方のため、とにかく議論の余地があることを言及するだろうと思いましたコードスニペットは明らかにMSILとして終わる:D – Aren

+0

それはどういう意味ですか?よくわかりません –

答えて

2

変更別のメソッドへの内部コード:その後、

private void buddyAddYouRequest(object sender, string buddy, 
     string requestMessage, ref bool bAccept) 
{ 
    object[] inVar = { sender, buddy, requestMessage, bAccept }; 
    this.Invoke(new OnBuddyAddYouRequestYahooEventHandler(OnBuddyAddYouRequest), inVar); 
    bAccept = (bool)inVar[3]; 
} 

、あなたがこのに引用された行を変更:

yahoo.OnBuddyAddYouRequest += buddyAddYouRequest; 

次にあなたがコード変換器を介してこれを実行することができますそれをVB.NETに変換します。

しかし、コードが意味をなさないことを指摘しておきます。既存のメソッドOnBuddyAddYouRequestを呼び出すようですが、不必要に丸い方法で呼び出します。私は著者がマルチスレッドの問題を克服しようとしている可能性があることを認識しています。その場合、あなたがはるかに簡単にそれを書くことができます(とタイプセーフ)このように:

private void buddyAddYouRequest(object sender, string buddy, 
     string requestMessage, ref bool bAccept) 
{ 
    bool bAcceptCopy = bAccept; 
    this.Invoke(new Action(() => OnBuddyAddYouRequest(sender, buddy, 
           requestMessage, ref bAcceptCopy))); 
    bAccept = bAcceptCopy; 
} 

// ... 

yahoo.OnBuddyAddYouRequest += buddyAddYouRequest; 
関連する問題