注释
对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;
}