序
这篇文章更适合有XLua编程基础的人,如果对XLua有概念性学习,希望了解更多关于热补丁时的处理细节,那么这篇文章同样会帮助到你。
那么,这篇文章将帮助你,认识并实现一个可以继承CSharpClass的Lua类,从而在热补丁的使用过程中更加的便捷。
怎么实现
实现思路如下
在C#Class的的构造函数中,返回我们自己创建的表
重写表的 get 和 set 接口
get 数据时,优先返回自建表的属性字段数据,其次返回C# Object的属性字段数据
set 数据时,优先设置自检表存在的属性字段,其次设置C# Object的属性字段数据
实现代码
--> 从网上找了一段已经写好的代码
function ExtendCS(csobj, newobj)
local csobj_mt = getmetatable(csobj)
for k, v in pairs(csobj_mt) do
rawset(newobj, k, v)
end
local csobj_index, csobj_newindex = newobj.__index, newobj.__newindex
newobj.__index = function(obj, k)
--> 优先返回newobj的字段
return rawget(newobj, k