print("*****************lesson5 泛型函数的相关知识******************");
local obj = CS.Lesson12();
local father = CS.Lesson12.TestFather();
local child = CS.Lesson12.TestChild();
--支持有约束有参数的泛型
obj:TestFun1(father,child);
obj:TestFun1(child,father);
--不支持没有约束的泛型函数
--obj:TestFun2(child);
--不支持有约束没有参数的泛型函数
--obj:TestFun2();
--lua中不支持非class的约束
--obj:TestFun4(child);
--补充知识 让上面不支持使用的泛型函数 变得能用
--有一定的使用限制
--Mono打包 这种方式支持使用
--il2cpp打包 如果泛型参数是引用类型才可以使用
--il2cpp打包 如果泛型参数是值类型,除非C#那边已经调用过了,同类型的泛型参数,lua中才能够被使用
--得到通用函数
--设置泛型类型再使用
local testFun2 = xlua.get_generic_method(CS.Lesson12,"TestFun2")
local fun2_R = testFun2(CS.System.Int32);
--调用
--成员方法 第一个参数 传调用函数的对象
fun2_R(obj,1);
总结: