C#之Action的实际应用例子

本文介绍了C#中Action委托的使用,通过实例展示了Action如何在实际编程中发挥作用,包括其在方法参数传递、事件处理等方面的应用,帮助读者理解并掌握这一特性。
public class DemoAction
{
    public Action action;
    public Action<int> action1;
    public Action<int,string> action2;
    public Action<List<int>> action3;

    /// <summary>
    /// 不带参数
    /// </summary>
    public void ActionDemo()
    {
        if (action != null)
        {
            action();
        }
    }

    /// <summary>
    /// 带一个参数
    /// </summary>
    /// <param name="a"></param>
    public void ActionDemo(int a)
    {
        if (action1 != null)
        {
            action1(a);
        }
    }

    /// <summary>
    /// 带两个参数
    /// </summary>
    /// <param name="a"></param>
    /// <param name="str"></param>
    public void ActionDemo(int a,string str)
    {
        if (action2 != null)
        {
            action2(a,str);
        }
    }

    /// <summary>
    /// 带一个列表
    /// </summary>
    /// <param name="?"></param>
    public void ActionDemo(List<int> list){
        if (action3 != null)
        {
            action3(list);
        }
    }
}



public class CSharpDemo : MonoBehaviour {

    Action action;
    
    
    // Use this for initialization
	void Start () {

        DemoAction demo = new DemoAction();
        demo.action = TestAction;
        demo.action1 = TestAction;
        demo.action2 = TestAction;
        demo.action3 = TestAction;

        List<int> list = new List<int>(){10,20,30,40};
        demo.action();
        demo.action1(20);
        demo.action2(20, "rose_grils");
        demo.action3(list);

	}
	
	// Update is called once per frame
	void Update () {
	
	}


    /// <summary>
    /// 不带参数
    /// </summary>
    void TestAction(){
        Debug.LogError(" 不带参数");
    }

    /// <summary>
    /// 带一个参数
    /// </summary>
    /// <param name="a"></param>
    void TestAction(int a)
    {
        Debug.LogError("带一个参数 =  " + a);
    }

    /// <summary>
    /// 带2个参数
    /// </summary>
    /// <param name="a"></param>
    /// <param name="str"></param>
    void TestAction(int a, string str)
    {
        Debug.LogError("带2个参数a = " + a + "  str = " + str);
    }

    /// <summary>
    /// 带一个列表
    /// </summary>
    /// <param name="list"></param>
    void TestAction(List<int> list)
    {
        Debug.LogError("带一个列表");
        for (int i = 0; i < list.Count; i++)
        {
            Debug.LogError("i = " + list[i]);
        }
    }

}


 

运行结果如下图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值