C# -> RaiseEvent in VB.Net



我在vb.net中与Tweetinvi一起玩得开心,我在将此代码转换为vb.net时遇到了问题。我仍然是初学者,我正试图获取有关Raiseevent的一些信息,但我做不到。这是代码。我想在按钮事件中运行此此操作:

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();

谢谢。

事实上,您不是要尝试提高一个事件,而是 subscribe 到一个。不幸的是,将代码转换为vb.net时遇到的智能错误错误有些误导。

在事件方面,C#的+=操作员等于 Delegate.Combine() ,它将另一个委托给事件的订阅者列表(事件处理程序列表)。A Delegate 只是持有另一种方法的指针的类。代表们用于提供一种简单的方法来通过代码传递和调用方法。

引用文档

+=运算符还用于指定将响应事件调用的方法;这样的方法称为事件处理程序。在这种情况下,+=操作员的使用称为订阅事件。。

要订阅vb.net中的事件,您必须使用 AddHandler语句,哪个语法为:

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及以下...我也想在那里更清楚地表明哪些陈述是一起进行的。

相关内容

  • 没有找到相关文章

最新更新