[英]Need help converting this code snippet from c# to vb
嘿,我已經嘗試了所有的在線代碼轉換器,但沒有一個在這方面工作。 有人可以向我解釋如何將其篡改為vb.net嗎?
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];
};
將內部代碼更改為單獨的方法:
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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.