2017-08-29 36 views
-3

我有樂趣TweetInvi在VB.Net,unfornately我有問題,此代碼轉換爲VB.Net。我仍然是初學者,我試圖獲得關於RaiseEvent的一些信息,但我無法做到。這是代碼。我想運行這個按鈕事件:C# - >的RaiseEvent在VB.Net

var stream = Stream.CreateFilteredStream(); 
stream.AddTrack("tweetinvi"); 
stream.MatchingTweetReceived += (sender, args) => 
{ 
    Console.WriteLine("A tweet containing 'tweetinvi' has been found; the tweet is '" + args.Tweet + "'"); 
}; 
stream.StartStreamMatchingAllConditions(); 

謝謝。

+0

你可以試試這個 - > http://converter.telerik.com/ –

+0

排名第二的**下**相關:我怎樣才能在VB.net的RaiseEvent(https://stackoverflow.com/問題/ 7805496/how-can-i-raiseevent-in-vb-net?rq = 1)??它根本不清楚你(沒有)要求什麼。請參閱[提問]和取[旅遊] ...但至少你* *有樂趣 – Plutonix

+0

瘋狂之,我嘗試過了,它並不能幫助這個時候。 Plutonix就像我說我google了,我讀了關於RaiseEvent的StackOverflow,但我仍然不明白。 – dwarfmine

回答

-1

由於事實上你並不想加薪事件,但訂閱一個。將代碼轉換爲VB.NET時得到的IntelliSense錯誤不幸有點誤導。

就事件而言,C#的+=運算符等於Delegate.Combine(),它將另一個委託添加到事件的訂閱者列表(事件處理程序列表)中。 A Delegate只是一個持有另一種方法指針的類。代表用於提供一種簡單的方式來傳遞和通過代碼調用方法。

引述documentation

+=的操作者也被用來指定一個將在響應於一個事件被調用方法;這種方法被稱爲事件處理程序。使用在此上下文中+=操作者的被稱爲訂閱事件

訂閱到VB.NET的事件,你得使用AddHandler statement,它的語法:

AddHandler <event to subscribe to>, <method to be invoked when the event occurs> 

這樣:

AddHandler stream.MatchingTweetReceived, _ 
    Sub(sender As Object, args As EventArgs) 
     Console.WriteLine("A tweet containing 'tweetinvi' has been found; the tweet is '" & args.Tweet & "'") 
    End Sub 

- 下劃線(_)上到底是隻是告訴編譯器繼續下一行的一種方式。在較新版本的VB.NET中,這不是必需的,但有些人仍然使用VS 2008及以下版本...我也希望在那裏更清楚地說明哪些語句集合在一起,哪些不集中。

+0

謝謝!看起來像它的作品。 – dwarfmine

+2

好的答案,但***你***應該知道現在回答這些問題是脫離主題。如果OP ***會發布什麼不起作用的***,那麼這將是適當的幫助...幾乎所有的答案已經在這裏多次解釋過,爲什麼我們需要更多? Plutonix發佈一個鏈接解釋這個問題,我問了一個問題,但沒有從OP答案... – Codexer

+0

@dwarfmine:很高興我能幫助,並歡迎堆棧溢出!如果解決了您的問題,請按下左側的勾號/複選標記將我的答案標記爲「已接受」。 –