C#泛型和委托学习

注释

对c#的泛型和委托进行融合,加深对其语法的概念理解

无返回值的泛型委托

    //无返回值的泛型委托
    public delegate void WeituoA<T>(T t);
    public WeituoA<string> weituo1;
    public WeituoA<int> weituo2;
    public WeituoA<float> weituo3;

    private void Start()
    {
        weituo1 += GetTB;
        weituo2 += GetTB;
        weituo3 += GetTB;
        weituo1?.Invoke("这是无返回值的string类型泛型委托");
        weituo2?.Invoke(1);
        weituo3?.Invoke(1.11f);
    }

     private void GetTB<T>(T t)
    {
        Debug.Log(t);
    }

有返回值的泛型委托

    //有返回值的泛型委托
    public delegate T WeituoB<T>(T t);
    public WeituoB<string> weituo4;
    public WeituoB<int> weituo5;
    public WeituoB<float> weituo6;

    private void Start()
    {
       
        weituo4 += GetTA;
        weituo5 += GetTA;
        weituo6 += GetTA;
        weituo4?.Invoke("这是有返回值的string类型泛型委托");
        weituo5?.Invoke(1);
        weituo6?.Invoke(1.11f);
    }

    private T GetTA<T>(T t)
    {
        Debug.Log(t);
        return t;
    }

无返回值的双参数泛型委托

    //无返回值的双参数泛型委托
    public delegate T2 WeituoD<T1, T2>(T1 t1, T2 t2);
    public WeituoD<string, int> weituo8;

    private void Start()
    {
        weituo7 += GetTC;
        weituo7?.Invoke("这是无返回值的双参数泛型委托", 99);
    }

    private void GetTC<T1, T2>(T1 t1, T2 t2)
    {
        Debug.Log(t1 + "和" + t2);
    }

有返回值的双参数泛型委托

    //有返回值的双参数泛型委托
    public delegate T2 WeituoD<T1, T2>(T1 t1, T2 t2);
    public WeituoD<string, int> weituo8;

    private void Start()
    {
        weituo8 += GetTD;
        weituo8?.Invoke("这是有返回值的双参数泛型委托", 99);
    }

    private T2 GetTD<T1, T2>(T1 t1, T2 t2)
    {
        Debug.Log(t1 + "和" + t2);
        return t2;
    }
    

无返回值的五参数泛型委托

    //无返回值的五参数泛型委托
    public delegate void WeituoE<T1, T2, T3, T4, T5>(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5);
    public WeituoE<string, int, char, long, float> weituo9;

    private void Start()
    {
        weituo9 += GetTE;
        weituo9?.Invoke("这是无返回值的五参数泛型委托", 99, '9', 99, 99);
    }

    private void GetTE<T1, T2, T3, T4, T5>(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5)
    {
        Debug.Log(t1 + "和" + t2);
    }

有返回值的五参数泛型委托

    //有返回值的五参数泛型委托
    public delegate T3 WeituoF<T1, T2, T3, T4, T5>(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5);
    public WeituoF<string, int, char, long, float> weituo10;

    private void Start()
    {
        weituo10 += GetTF;
        weituo10?.Invoke("这是有返回值的五参数泛型委托", 99, '9', 99, 99);
    }

    private T3 GetTF<T1, T2, T3, T4, T5>(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5)
    {
        Debug.Log(t1 + "和" + t2);
        return t3;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值