UH2S2L26——泛型类替换
泛型类替换
泛型类,T是可以变化,而Lua没有泛型,因此,lua中的替换,要一个类型一个类型的来
你想替换几个类型,就写几个对应类型的补丁
固定语法为:
1 2 3
| xlua.hotfix(CS.泛型类名(类型), { })
|
假设我们要对下面泛型类做热补丁
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| [Hotfix] public class HotfixTest2<T> { public void Test(T str) { Debug.Log(str); } }
public class HotfixMain : MonoBehaviour { void Start() { LuaManager.Instance.Init(); LuaManager.Instance.DoLuaFile("Main");
HotfixTest2<string> t1 = new HotfixTest2<string>(); t1.Test("123");
HotfixTest2<int> t2 = new HotfixTest2<int>(); t2.Test(1000); } }
|
泛型传入字符串和整数,则lua脚本内容如下
1 2 3 4 5 6 7 8 9 10 11
| xlua.hotfix(CS.HotfixTest2(CS.System.String), { Test = function(self, str) print("lua中打的补丁: " .. str) end })
xlua.hotfix(CS.HotfixTest2(CS.System.Int32), { Test = function(self, num) print("lua中打的补丁:".. num) end })
|