UE4 C++ 动态单播委托(代理)

2021-2-15

动态委托

官方文档相关内容

动态委托可序列化,其函数可按命名查找,但其执行速度比常规委托慢。

声明动态委托

DECLARE_DYNAMIC_DELEGATE[_RetVal, …]( DelegateName ) 创建一个动态委

DECLARE_DYNAMIC_MULTICAST_DELEGATE[_RetVal, …]( DelegateName ) 创建一个动态组播委托
例:
在这里插入图片描述

动态委托绑定

在这里插入图片描述
下面为用于测试的待绑定对象的一个测试函数:
在这里插入图片描述
在这里插入图片描述

例(制造、绑定委托):
在这里插入图片描述
BindDynamic是一个宏,可以将待绑定函数名转为字符串,而一般的委托需要直接输入函数名的字符串
BindDynamic是一个宏,可以将待绑定函数名转为字符串,而一般的委托需要直接输入函数名的字符串

执行动态委托

通过调用委托的 Execute() 函数执行绑定到委托的函数。执行前须检查委托是否已绑定。 此操作是为了使代码更安全,因为有时委托可能含有未初始化且被后续访问的返回值和输出参数。 执行未绑定的委托在某些情况下确实可能导致内存混乱。可调用 IsBound() 检查是否可安全执行委托。 同时,对于无返回值的委托,可调用 ExecuteIfBound(),但需注意输出参数可能未初始化。
在这里插入图片描述
例(由另一个对象调用委托):
在这里插入图片描述

其他

动态委托不支持负载
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值