ILRuntime使用(注册跨域委托)

4 篇文章 0 订阅

1.Action

//比如system.Action<int>
appdomain.DelegateManager.RegisterMethodDelegate<int>();

2.Func

//比如system.Func<int,bool>
appdomain.DelegateManager.RegisterFunctionDelegate<int,bool>();

 3.自定义委托

/*比如
public delegate void TestDelegateMethod(int a);
public static TestDelegateMethod TestMethodDelegate;
*/
//先适配action
appdomain.DelegateManager.RegisterMethodDelegate<int>();
//再转换适配
appdomain.DelegateManager.RegisterDelegateConvertor<TestDelegateMethod>((action) =>
{
    return new TestDelegateMethod((a) =>
    {         
        ((System.Action<int>)action)(a);
    });
});

 4.常用的unity内置委托

//UGUI按钮事件        appdomain.DelegateManager.RegisterDelegateConvertor<UnityEngine.Events.UnityAction>((action) =>
        {
            return new UnityEngine.Events.UnityAction(() =>
            {
                ((System.Action)action)();
            });
        });


        //sort委托适配
        //类比较
        appdomain.DelegateManager.RegisterFunctionDelegate<ILTypeInstance, ILTypeInstance,int>();
        appdomain.DelegateManager.RegisterDelegateConvertor<System.Comparison<ILTypeInstance>>((action) =>
        {
            return new System.Comparison<ILTypeInstance>((a,b) =>
            {
                return ((System.Func<ILTypeInstance, ILTypeInstance,int>)action)(a,b);
            });
        });
        //int比较
        appdomain.DelegateManager.RegisterFunctionDelegate<int, int, int>();
        appdomain.DelegateManager.RegisterDelegateConvertor<System.Comparison<int>>((action) =>
        {
            return new System.Comparison<int>((a, b) =>
            {
                return ((System.Func<int, int, int>)action)(a, b);
            });
        });


        //linq(以orderBy为例)
        appdomain.DelegateManager.RegisterFunctionDelegate<int, int>();//int排序
        appdomain.DelegateManager.RegisterFunctionDelegate<ILTypeInstance, int>();//类中的int排序

ILRuntime免费课程链接

两小时带你搞懂ILRuntime热更新icon-default.png?t=LA92https://www.bycwedu.com/promotion_channels/1021737097

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萧寒大大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值