不会让我在课外打电话

戴维·蒂伦

在我的课堂上,我有:

public event WrDatabase.LoadStatus loadStatus;

我可以在类中的方法内部调用它。但是当我有外面时:

if (datasource.loadStatus != null)
    datasource.loadStatus.Invoke(WrDatabase.TYPE.SFORCE_COLLECTION, SObjectName);

我得到:

  • if语句:该事件只能出现在+ =或-=的左侧
  • Invoke语句:我知道Invoke()不是该类上的方法。

由于某种原因,我是否需要将此课程推入课堂?

纪尧姆·萨迪(Guillaume Sasdy)

您收到的错误消息是正确的。

Anevent是一种围绕delegate领域的语法糖,以确保将其用作广播方/订户模式

从广播类的外部,event仅允许使用+=-=访问者订阅和取消订阅Invoke从外部无法得知方法,以确保仅广播者类可以调用该事件。它还可以确保外界无法清除订阅者。

如果您确实要这样做,则需要使用delegate而不是event更改类型,您的代码应该可以正常工作。

作为旁注。这段代码:

datasource.loadStatus(WrDatabase.TYPE.SFORCE_COLLECTION, SObjectName);

实际上确实调用了该Invoke方法:

datasource.loadStatus.Invoke(WrDatabase.TYPE.SFORCE_COLLECTION, SObjectName);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我的BroadcastReceiver不会打电话

借位检查器不会让我打电话给setter之后再打电话给getter

我打电话的EntityManager的NullReferenceException

谁在打电话给我的HttpServletRequest?

雄辩的自我加入-如何打电话

我打电话给Push:禁用WebSocket并强迫我打电话使用流媒体

我到底应该什么时候打电话给[super viewWillAppear:],什么时候不打电话?

我应该在接受之前打电话给bind吗?

我拨打电话的功能出了什么问题

为什么我们不能打电话给setTimeout申请?

我应该打电话给Integer.hashCode()吗?

响应请求时,我应该避免打电话给require吗?

当我打电话给Xajax时RewriteRule得到错误

RxJava,如果我不打电话给处置怎么办?

我可以打电话给特定的世代GC吗

从Angular给我的.NET Core团队打电话

我应该在哪里打电话给setintreval

为什么我不能直接打电话给减速机?

MVC从我打电话给Json结果到同一视图

我uitableview(cell = nil)总是不打电话吗?

Python while 循环,在课外打开和关闭它

让 Twilio 等我,然后在有人接电话时给我打电话

从网站拨打电话

打电话给iOS Xamarin

在Unity中打电话?

如果快速拨打电话,Android LiveData Observable不会返回数据

为什么我越来越流<OBJECT>当我打电话后付费的流()()?

没有一个回应时,我打电话给我的web服务的GET请求

如何进行超级课程,我可以打电话来处理我的下载内容