【问题标题】:C# -> RaiseEvent in VB.Net [closed]C#-> VB.Net 中的 RaiseEvent [关闭]
【发布时间】:2018-02-07 08:43:57
【问题描述】:

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

谢谢。

【问题讨论】:

  • 你可以试试这个 -> converter.telerik.com
  • 相关下的第二位:How can I RaiseEvent in VB.net ??它根本不清楚你(不是)问什么。请阅读How to Asktour...但至少玩得开心
  • Krazy,我试过了,但这次没有用。 Plutonix 就像我说的我用谷歌搜索过,我读过 StackOverflow 关于 RaiseEvent 但我仍然不明白。
  • Krazy, I tried it and it doesn't help this time,什么没有帮助?错误是什么?
  • 即使是 krazier 也加入了一个 QA 网站,该网站以对提出的问题和提出问题的方式很挑剔而著称,并且没有先阅读网站指南,例如 How to Asktour

标签: c# vb.net tweetinvi


【解决方案1】:

事实上,您并不是要提出一个事件,而是订阅一个事件.不幸的是,将该代码转换为 VB.NET 时出现的 IntelliSense 错误有点误导。

就事件而言,C# 的+= 运算符等于Delegate.Combine(),它将另一个委托添加到事件的订阅者列表(事件处理程序列表)。 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 及更低版本...我也希望将它放在那里,以便更清楚哪些语句可以在一起,哪些不可以。

【讨论】:

  • 谢谢!好像行得通。
  • 很好的答案,但现在应该知道回答这些问题是题外话了。如果 OP 会发布不起作用的内容,那么提供帮助是合适的...几乎您的所有答案都已在此处解释了很多次,为什么我们需要更多? Plutonix 发布了一个链接来解释这一点,我问了一个问题,但 OP 没有回答...
  • @dwarfmine :很高兴我能帮上忙,欢迎来到 Stack Overflow!如果解决了您的问题,请按左侧的勾号/复选标记将我的回答标记为“已接受”。
  • 我不想开始发布链接,是吗?就在 related 区域,我看到大约 6 个有用的 :) stackoverflow.com/questions/30870460/… 那个或 stackoverflow.com/questions/34277855/… 这个怎么样?这只是相关下的两个
  • @VisualVincent 没问题。发生的事情是人们认为只是发布代码并说它不起作用,我们会为他们提供他们想要的任何东西。 SO 与此无关,我相信这就是为什么许多人来投票结束这些问题的原因,因为缺乏信息和/或对他们报告的问题的研究。如果人们开始回答他们所拥有的这些问题,他们会得到这样的印象:ok...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-11
相关资源
最近更新 更多