程序地带

回调函数


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
//无参委托函数
public delegate void CallBack_zero();
//单参委托函数 可自定义参数类型
public delegate void CallBack_one(int number);
//多参委托函数 可自定义参数类型
public delegate void CallBack_two(int number,string name,GameObject demo);
public class Test : MonoBehaviour
{
private void Start()
{
//无引用
Demo_show();
Demo_show_one();
Demo_show_two();
Demo_show_three();
//有引用,待函数执行完后,执行回调函数|切记:在执行回调函数时,母函数所在脚本不能失活
Demo_show(One);
Demo_show_one(Two);
Demo_show_two(Three);
Demo_show_three(Four);
}
#region 回调函数引用处
/// <summary>
/// 系统自带Action<T> T可为任意参数 引用 System 即可,可不引用
/// </summary>
/// <param name="call_back"></param>
public void Demo_show(Action<GameObject> call_back=null)
{
//执行
call_back(gameObject);
}
/// <summary>
/// 自建回调函数 CallBack_zero 属于无参回调函数 ,可不引用
/// </summary>
/// <param name="call_cake"></param>
public void Demo_show_one(CallBack_zero call_bake = null)
{
//执行
call_bake?.Invoke();
}
/// <summary>
/// 自建回调函数 CallBack_one 属于单参回调函数,可不引用
/// </summary>
/// <param name="call_cake"></param>
public void Demo_show_two(CallBack_one call_bake = null)
{
//执行
call_bake(1);
}
/// <summary>
/// 自建回调函数 CallBack_two 属于多参回调函数,可不引用
/// </summary>
/// <param name="call_bake"></param>
public void Demo_show_three(CallBack_two call_bake = null)
{
//执行
call_bake(1,"null",gameObject);
}
#endregion
#region 回调函数 show
//带参 gameobject
public void One(GameObject deme)
{
//待执行
}
//无参
public void Two()
{
//待执行
}
//单参为 int
public void Three(int number)
{
//待执行
}
//多参 int 、string、GameObject
public void Four(int number, string name, GameObject demo)
{
//待执行
}
#endregion
}

 


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fanfan_hongyun/article/details/111246141

随机推荐

python 神经网络_从零开始用 Python 构建循环神经网络

引言人类不会每听到一个句子就对语言进行重新理解。看到一篇文章时,我们会根据之前对这些词的理解来了解背景。我们将其定义为记忆力。算法可以复制这种模式吗?神经网络(NN)是最先...

weixin_39992831 阅读(219)

python测验5_测试你的Python 水平----5

1、问:面向对象编程的基本特性有哪些?答:抽象,封装,继承和隐藏。2、问:请简述python垃圾回收机制࿱...

weixin_39833469 阅读(595)