Closed luqingyang closed 3 months ago
---@class Object ---@field __index Object @本类 ---@field __name string @类名 ---@field __instance_name string @类名 ---@field __class Object @本类 ---@field __super Object @基类 ---@field __cacheReleased? boolean ---@field constructor? fun(...) ---@field CacheNew? fun(...) ---@field CacheRelease? fun(...) local Object = { __name = "Object" } Object.__index = Object ---定义类 ---@generic T : Object ---@param name `T` 类名称 ---@return T 类 function class(name) return inherit(Object, name) end ---@generic T ---@param super table 基类 ---@param name `T` 类名称 function inherit(super, name) local newClass = {} newClass.__index = newClass newClass.__name = name newClass.__class = newClass newClass.__super = super return setmetatable(newClass, super) end ---@class WndBase : Object ---@field _wnd number ---@field _id number WndBase = class("WndBase") ---@class WndObject : WndBase WndObject = inherit(WndBase, "WndObject"); function WndObject:constructor(path, afterInit, parent, ...) -- prepare init param self._id = 0 self._wnd = 0 end
如上代码,倒数第二行,第三行的self._id和self._wnd定位查找不到基类WndBase中的定义
我不能给你实现这个需求, 如果子类的引用查找查找到父类, 甚至父类的所有子类, 那么查找引用的结果几乎没有实用价值, 因为到处都是, 但是我可以让你在父类中查找引用时包含他的所有子类
如上代码,倒数第二行,第三行的self._id和self._wnd定位查找不到基类WndBase中的定义