【问题标题】:Callbacks / Events in C#C# 中的回调/事件
【发布时间】:2010-07-05 08:28:27
【问题描述】:

我对 C# ATM 很陌生,我似乎在使用 Jabber-Net 时遇到了问题

我正在尝试创建一个基本的聊天应用程序,该应用程序将通过 Jaber 服务连接用户,我遇到的问题与回调有关。

我似乎得到的主要错误是关于“需要的事件,但像'类型'一样使用”,或者类似的东西..

我在工作 atm,所以我不能给你完整的细节,但它似乎是当我尝试添加回调时.. 例如:

JabberClient Jabber = new JabberCLient();
Jabbaer.OnConnect += new jabber.connection.XmppStream.OnConnect(Some_event_function);

现在这段代码只是在我的脑海中,可能是错误的,我在学习时通过修复错误来工作,但我得到一个错误,基本上告诉我 我正在做的事情应该作为一个事件,但我用作类型

有没有人能解释一下这个问题。

向罗伯特·皮特致敬

【问题讨论】:

  • 如果您从确实拥有实际代码的地方发帖,效果会更好。
  • 是的,我会尽快更新 OP,但这不仅仅是关于代码,我确实需要了解一般事件。我很抱歉给你带来问题。
  • 你似乎在混合你的层 - ATM 是第 2 层,XMPP 是第 7 层

标签: c# events callback xmpp


【解决方案1】:

原则上是一行

  Jabbaer.OnConnect += new 
      jabber.connection.XmppStream.OnConnect(Some_event_function);

是错误的,因为 XmppStream.OnConnect 是一个属性,此时您需要一个委托定义。但不要调试记忆中的内容,只需使用简写形式:

  Jabbaer.OnConnect += Some_event_function;

【讨论】:

  • 我会试一试,我不确定我为什么要使用`jabber.connection.XmppStream.OnConnect`,我确定我被告知在某个地方。我会尽快告诉你结果。
【解决方案2】:

将第二行替换为:

Jabber.OnConnect += Some_event_function;

【讨论】:

  • 感谢您的快速回复,我现在无法测试,稍后会做,但我确定我尝试过该方法并出现错误,我不是 100% 确定。
  • 如果出现错误,可能是由于签名不同(事件和回调之间)造成的。
  • 我不这么认为,应该是编译错误(编译时捕获)。如果您指的是运行时错误(.NET 异常),那么函数内部有问题。
猜你喜欢
  • 2017-07-19
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多